private MetadataCreateArray CreateMetadataArray(TypedConstant argument, EmitContext context) { Debug.Assert(!argument.Values.IsDefault); var values = argument.Values; var arrayType = ((PEModuleBuilder)context.Module).Translate( (ArrayTypeSymbol)argument.TypeInternal ); if (values.Length == 0) { return(new MetadataCreateArray( arrayType, arrayType.GetElementType(context), ImmutableArray <Cci.IMetadataExpression> .Empty )); } var metadataExprs = new Cci.IMetadataExpression[values.Length]; for (int i = 0; i < values.Length; i++) { metadataExprs[i] = CreateMetadataExpression(values[i], context); } return(new MetadataCreateArray( arrayType, arrayType.GetElementType(context), metadataExprs.AsImmutableOrNull() )); }
public HexPropertyMetadataNamedArgument( Cci.ITypeReference type, Cci.IMetadataExpression value ) { _type = type; _value = value; }
public HexPropertyMetadataNamedArgument(Cci.ITypeReference type, Cci.IMetadataExpression value) { this.type = type; this.value = value; }
private MetadataCreateArray CreateMetadataArray(TypedConstant argument, EmitContext context) { Debug.Assert(!argument.Values.IsDefault); var values = argument.Values; var arrayType = Emit.PEModuleBuilder.Translate((ArrayTypeSymbol)argument.Type); if (values.Length == 0) { return new MetadataCreateArray(arrayType, arrayType.GetElementType(context), ImmutableArray<Cci.IMetadataExpression>.Empty); } var metadataExprs = new Cci.IMetadataExpression[values.Length]; for (int i = 0; i < values.Length; i++) { metadataExprs[i] = CreateMetadataExpression(values[i], context); } return new MetadataCreateArray(arrayType, arrayType.GetElementType(context), metadataExprs.AsImmutableOrNull()); }