public override AssemblyReferenceBinding[] BindAssemblyReferences( ImmutableArray <AssemblyData> assemblies, AssemblyIdentityComparer assemblyIdentityComparer) { var boundReferences = new AssemblyReferenceBinding[_referencedAssemblies.Length]; for (int i = 0; i < _referencedAssemblyData.Length; i++) { Debug.Assert(ReferenceEquals(_referencedAssemblyData[i], assemblies[i + 1])); boundReferences[i] = new AssemblyReferenceBinding(assemblies[i + 1].Identity, i + 1); } // references from added modules shouldn't resolve against the assembly being built (definition #0) const int definitionStartIndex = 1; // resolve references coming from linked modules: for (int i = _referencedAssemblyData.Length; i < _referencedAssemblies.Length; i++) { boundReferences[i] = ResolveReferencedAssembly( _referencedAssemblies[i], assemblies, definitionStartIndex, assemblyIdentityComparer); } return(boundReferences); }
internal static AssemblyReferenceBinding[] ResolveReferencedAssemblies(ReadOnlyArray <AssemblyIdentity> references, AssemblyData[] definitions) { var boundReferences = new AssemblyReferenceBinding[references.Count]; for (int j = 0; j < references.Count; j++) { boundReferences[j] = ResolveReferencedAssembly(references[j], definitions); } return(boundReferences); }
internal static AssemblyReferenceBinding[] ResolveReferencedAssemblies( ImmutableArray <AssemblyIdentity> references, ImmutableArray <AssemblyData> definitions, int definitionStartIndex, AssemblyIdentityComparer assemblyIdentityComparer) { var boundReferences = new AssemblyReferenceBinding[references.Length]; for (int j = 0; j < references.Length; j++) { boundReferences[j] = ResolveReferencedAssembly(references[j], definitions, definitionStartIndex, assemblyIdentityComparer); } return(boundReferences); }
internal static AssemblyReferenceBinding[] ResolveReferencedAssemblies( ImmutableArray <AssemblyIdentity> references, ImmutableArray <AssemblyData> definitions, AssemblyIdentityComparer assemblyIdentityComparer, bool okToResolveAgainstCompilationBeingCreated) { var boundReferences = new AssemblyReferenceBinding[references.Length]; for (int j = 0; j < references.Length; j++) { boundReferences[j] = ResolveReferencedAssembly(references[j], definitions, assemblyIdentityComparer, okToResolveAgainstCompilationBeingCreated); } return(boundReferences); }
public override AssemblyReferenceBinding[] BindAssemblyReferences( ImmutableArray <AssemblyData> assemblies, AssemblyIdentityComparer assemblyIdentityComparer) { var boundReferences = new AssemblyReferenceBinding[_referencedAssemblies.Length]; for (int i = 0; i < _referencedAssemblyData.Length; i++) { Debug.Assert(ReferenceEquals(_referencedAssemblyData[i], assemblies[i + 1])); boundReferences[i] = new AssemblyReferenceBinding(assemblies[i + 1].Identity, i + 1); } // resolve references coming from linked modules: for (int i = _referencedAssemblyData.Length; i < _referencedAssemblies.Length; i++) { boundReferences[i] = ResolveReferencedAssembly( _referencedAssemblies[i], assemblies, assemblyIdentityComparer, okToResolveAgainstCompilationBeingCreated: false); // references from added modules shouldn't resolve against the assembly we are building. } return(boundReferences); }