...
This commit is contained in:
@@ -96,16 +96,7 @@ public class Generator
|
||||
{
|
||||
foreach (var variant in e.Variants)
|
||||
{
|
||||
writer.WriteLine("struct");
|
||||
writer.WriteLine("{");
|
||||
using (writer.Indent())
|
||||
{
|
||||
foreach (var field in variant.Fields)
|
||||
{
|
||||
writer.WriteLine($"{CType(field.Type, field.Name)};");
|
||||
}
|
||||
}
|
||||
writer.WriteLine($"}} {variant.Name};");
|
||||
writer.WriteLine($"{CType(variant.Type, variant.Name)};");
|
||||
}
|
||||
}
|
||||
writer.WriteLine("};");
|
||||
@@ -407,17 +398,9 @@ public class Generator
|
||||
var enumInfo = (Module.TypeInfoEnum)info;
|
||||
var tag = enumInfo.Variants.ToList().FindIndex(x => x.Name == enumVariantType.Variant);
|
||||
|
||||
var initializerValues = new Dictionary<string, string>();
|
||||
var value = EmitExpression(expression.Value);
|
||||
|
||||
foreach (var initializer in expression.Initializers)
|
||||
{
|
||||
var values = EmitExpression(initializer.Value);
|
||||
initializerValues[initializer.Name.Ident] = values;
|
||||
}
|
||||
|
||||
var initializerStrings = initializerValues.Select(x => $".{x.Key} = {x.Value}");
|
||||
|
||||
return $"({CType(expression.Type)}){{ .tag = {tag}, .{enumVariantType.Variant} = {{ {string.Join(", ", initializerStrings)} }} }}";
|
||||
return $"({CType(expression.Type)}){{ .tag = {tag}, .{enumVariantType.Variant} = {value} }}";
|
||||
}
|
||||
|
||||
private string EmitExpressionMemberAccess(TypedNodeExpressionMemberAccess expression)
|
||||
|
||||
Reference in New Issue
Block a user