public CreateCodeGenerationPipelineState(ICodeGeneratorContext context, ITypeInstanceActivator typeInstanceActivator)
        {
            Ensure.ArgumentNotNull(context, "context");
            Ensure.ArgumentNotNull(typeInstanceActivator, "typeInstanceActivator");

            Context = context;

            SourcePartialClassDefinitions = new List<TypeDeclaration>();
            AssemblyAttributes = new List<IAttribute>();
            SourcePartialClassAttributes = new Dictionary<TypeDeclaration, IList<IAttribute>>();
            CodeGenerationErrors = new List<CodeGenerationError>();

            TypeInstanceActivator = typeInstanceActivator;
            PartialClassLevelResolvedPMixinAttributes = new Dictionary<TypeDeclaration, IList<pMixinAttributeResolvedResultBase>>();

            CodeGenerationPlans = new Dictionary<TypeDeclaration, CodeGenerationPlan>();

            CodeBehindSyntaxTree = new SyntaxTree();
        }
        public CreateCodeGenerationPipelineState(ICodeGeneratorContext context, ITypeInstanceActivator typeInstanceActivator)
        {
            Ensure.ArgumentNotNull(context, "context");
            Ensure.ArgumentNotNull(typeInstanceActivator, "typeInstanceActivator");

            Context = context;

            SourcePartialClassDefinitions = new List <TypeDeclaration>();
            AssemblyAttributes            = new List <IAttribute>();
            SourcePartialClassAttributes  = new Dictionary <TypeDeclaration, IList <IAttribute> >();
            CodeGenerationErrors          = new List <CodeGenerationError>();

            TypeInstanceActivator = typeInstanceActivator;
            PartialClassLevelResolvedPMixinAttributes = new Dictionary <TypeDeclaration, IList <pMixinAttributeResolvedResultBase> >();

            CodeGenerationPlans = new Dictionary <TypeDeclaration, CodeGenerationPlan>();

            CodeBehindSyntaxTree = new SyntaxTree();
        }