private static NIType AddGenericMutabilityTypeParameter(NIFunctionBuilder functionBuilder, string name) { var genericTypeParameters = functionBuilder.MakeGenericParameters(name); var parameterBuilder = genericTypeParameters.ElementAt(0); SetMutabilityTypeAttribute((NIAttributedBaseBuilder)parameterBuilder); return(parameterBuilder.CreateType()); }
public static NIType AddGenericLifetimeTypeParameter(NIFunctionBuilder functionBuilder, string name) { var genericTypeParameters = functionBuilder.MakeGenericParameters(name); var parameterBuilder = genericTypeParameters.ElementAt(0); DataTypes.SetLifetimeTypeAttribute((NIAttributedBaseBuilder)parameterBuilder); return(parameterBuilder.CreateType()); }
public static NIType AddGenericDataTypeParameter(NIFunctionBuilder functionBuilder, string name, params NITypeBuilder[] constraints) { var genericTypeParameters = functionBuilder.MakeGenericParameters(name); NITypeBuilder typeBuilder = genericTypeParameters.ElementAt(0); // HACK, but there seems to be no other public way to add constraints to an NITypeBuilder List <NITypeBuilder> builderConstraints = (List <NITypeBuilder>)((NIGenericTypeBuilder)typeBuilder).Constraints; builderConstraints.AddRange(constraints); return(typeBuilder.CreateType()); }