void ResolveImportAssemblyReferences()
{
foreach (Boo.Lang.Compiler.Ast.Module module in CompileUnit.Modules)
{
ImportCollection imports = module.Imports;
Import[] importArray = imports.ToArray();
for (int i=0; i<importArray.Length; ++i)
{
Import u = importArray[i];
ReferenceExpression reference = u.AssemblyReference;
if (null != reference)
{
try
{
Assembly asm = Parameters.FindAssembly(reference.Name);
if (null == asm)
{
asm = Parameters.LoadAssembly(reference.Name);
if (null != asm)
{
Parameters.AddAssembly(asm);
}
}
reference.Entity = new TypeSystem.AssemblyReference(asm);
}
catch (Exception x)
{
Errors.Add(CompilerErrorFactory.UnableToLoadAssembly(reference, reference.Name, x));
imports.RemoveAt(i);
}
}
}
}
}