...
This commit is contained in:
@@ -596,6 +596,8 @@ public class CastNode(List<Token> tokens, NubType type, ExpressionNode value, Ca
|
||||
|
||||
ConstArrayToArray,
|
||||
ConstArrayToSlice,
|
||||
|
||||
StringToCString
|
||||
}
|
||||
|
||||
public ExpressionNode Value { get; } = value;
|
||||
@@ -607,7 +609,7 @@ public class CastNode(List<Token> tokens, NubType type, ExpressionNode value, Ca
|
||||
}
|
||||
}
|
||||
|
||||
public class StructInitializerNode(List<Token> tokens, NubType type, Dictionary<IdentifierToken, ExpressionNode> initializers) : RValue(tokens, type)
|
||||
public class StructInitializerNode(List<Token> tokens, NubType type, Dictionary<IdentifierToken, ExpressionNode> initializers) : LValue(tokens, type)
|
||||
{
|
||||
public Dictionary<IdentifierToken, ExpressionNode> Initializers { get; } = initializers;
|
||||
|
||||
@@ -620,7 +622,7 @@ public class StructInitializerNode(List<Token> tokens, NubType type, Dictionary<
|
||||
}
|
||||
}
|
||||
|
||||
public class ConstArrayInitializerNode(List<Token> tokens, NubType type, List<ExpressionNode> values) : RValue(tokens, type)
|
||||
public class ConstArrayInitializerNode(List<Token> tokens, NubType type, List<ExpressionNode> values) : LValue(tokens, type)
|
||||
{
|
||||
public List<ExpressionNode> Values { get; } = values;
|
||||
|
||||
|
||||
@@ -389,6 +389,11 @@ public sealed class TypeChecker
|
||||
conversion = CastNode.Conversion.ConstArrayToSlice;
|
||||
return true;
|
||||
}
|
||||
case NubStringType when to is NubPointerType { BaseType: NubIntType { Signed: true, Width: 8 } }:
|
||||
{
|
||||
conversion = CastNode.Conversion.StringToCString;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!strict)
|
||||
|
||||
Reference in New Issue
Block a user