示例#1
0
        internal PrivateImplementationDetails(
            CommonPEModuleBuilder moduleBuilder,
            string moduleName,
            int submissionSlotIndex,
            ITypeReference systemObject,
            ITypeReference systemValueType,
            ITypeReference systemInt8Type,
            ITypeReference systemInt16Type,
            ITypeReference systemInt32Type,
            ITypeReference systemInt64Type,
            ICustomAttribute compilerGeneratedAttribute)
        {
            Debug.Assert(systemObject != null);
            Debug.Assert(systemValueType != null);

            _moduleBuilder   = moduleBuilder;
            _systemObject    = systemObject;
            _systemValueType = systemValueType;

            _systemInt8Type  = systemInt8Type;
            _systemInt16Type = systemInt16Type;
            _systemInt32Type = systemInt32Type;
            _systemInt64Type = systemInt64Type;

            _compilerGeneratedAttribute = compilerGeneratedAttribute;

            var isNetModule = moduleBuilder.OutputKind == OutputKind.NetModule;

            _name = GetClassName(moduleName, submissionSlotIndex, isNetModule);
        }
示例#2
0
        public override void Visit(CommonPEModuleBuilder module)
        {
            //EDMAURER visit these assembly-level attributes even when producing a module.
            //They'll be attached off the "AssemblyAttributesGoHere" typeRef if a module is being produced.

            this.Visit(module.GetSourceAssemblyAttributes(Context.IsRefAssembly));
            this.Visit(module.GetSourceAssemblySecurityAttributes());
            this.Visit(module.GetSourceModuleAttributes());
        }
示例#3
0
        public EmitContext(CommonPEModuleBuilder module, GreenNode syntaxNodeOpt, DiagnosticBag diagnostics, bool metadataOnly, bool includePrivateMembers)
        {
            Debug.Assert(module != null);
            Debug.Assert(diagnostics != null);
            Debug.Assert(includePrivateMembers || metadataOnly);

            Module        = module;
            SyntaxNodeOpt = syntaxNodeOpt;
            Diagnostics   = diagnostics;

            Flags flags = Flags.None;

            if (metadataOnly)
            {
                flags |= Flags.MetadataOnly;
            }
            if (includePrivateMembers)
            {
                flags |= Flags.IncludePrivateMembers;
            }
            _flags = flags;
        }
示例#4
0
 public override abstract void Visit(CommonPEModuleBuilder module);
示例#5
0
 public abstract void Visit(CommonPEModuleBuilder module);