Exemplo n.º 1
0
        public void SetUp()
        {
            binder        = Substitute.For <ISettingsBinder>();
            cachingBinder = new CachingBinder(binder);

            node     = new ValueNode("value");
            settings = new object();
        }
        public async Task<IAssembly> CompileAsync(IProject Project, CompilationParameters Parameters)
        {
            var name = Parameters.Log.GetAssemblyName(Project.AssemblyName ?? Project.Name ?? "");
            var extBinder = await Parameters.BinderTask;
            var asm = new DescribedAssembly(name, extBinder.Environment);

            var asmBinder = new CachingBinder(new DualBinder(asm.Binder, extBinder));

            var units = await ParseCompilationUnitsAsync(Project.GetSourceItems(), Parameters, asmBinder, asm);
            var rootNs = new RootNamespace(asm, units);

            // Perform a bait-and-switch here such that lazy evaluation will
            // take the types defined in this namespace into account when resolving symbols.
            asm.MainNamespace = rootNs;

            asm.EntryPoint = InferEntryPoint(asm);

            return asm;
        }