ImmutableArray <Cci.ITypeReference> Cci.IGenericTypeInstanceReference.GetGenericArguments(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; var builder = ArrayBuilder <Microsoft.Cci.ITypeReference> .GetInstance(); Debug.Assert(((Cci.ITypeReference) this).AsGenericTypeInstanceReference != null); var modifiers = default(ImmutableArray <ImmutableArray <CustomModifier> >); //if (this.HasTypeArgumentsCustomModifiers) //{ // modifiers = this.TypeArgumentsCustomModifiers; //} var arguments = this.TypeArguments; // .TypeArgumentsNoUseSiteDiagnostics; for (int i = 0; i < arguments.Length; i++) { var arg = moduleBeingBuilt.Translate(arguments[i], syntaxNodeOpt: context.SyntaxNodeOpt, diagnostics: context.Diagnostics); if (!modifiers.IsDefault && !modifiers[i].IsDefaultOrEmpty) { arg = new Cci.ModifiedTypeReference(arg, modifiers[i].As <Cci.ICustomModifier>()); } builder.Add(arg); } return(builder.ToImmutableAndFree()); }
ImmutableArray<Cci.ITypeReference> Cci.IGenericTypeInstanceReference.GetGenericArguments(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; var builder = ArrayBuilder<Microsoft.Cci.ITypeReference>.GetInstance(); Debug.Assert(((Cci.ITypeReference)this).AsGenericTypeInstanceReference != null); var modifiers = default(ImmutableArray<ImmutableArray<CustomModifier>>); //if (this.HasTypeArgumentsCustomModifiers) //{ // modifiers = this.TypeArgumentsCustomModifiers; //} var arguments = this.TypeArguments; // .TypeArgumentsNoUseSiteDiagnostics; for (int i = 0; i < arguments.Length; i++) { var arg = moduleBeingBuilt.Translate(arguments[i], syntaxNodeOpt: context.SyntaxNodeOpt, diagnostics: context.Diagnostics); if (!modifiers.IsDefault && !modifiers[i].IsDefaultOrEmpty) { arg = new Cci.ModifiedTypeReference(arg, modifiers[i].As<Cci.ICustomModifier>()); } builder.Add(arg); } return builder.ToImmutableAndFree(); }