Remove hook concept
This commit is contained in:
@@ -14,7 +14,7 @@ public record FuncNode(string Module, string Name, string? ExternSymbol, FuncSig
|
||||
|
||||
public record StructFieldNode(string Name, NubType Type, ExpressionNode? Value) : Node;
|
||||
|
||||
public record StructFuncNode(string Name, string? Hook, FuncSignatureNode Signature, BlockNode Body) : Node;
|
||||
public record StructFuncNode(string Name, FuncSignatureNode Signature, BlockNode Body) : Node;
|
||||
|
||||
public record StructNode(string Module, string Name, List<StructFieldNode> Fields, List<StructFuncNode> Functions) : DefinitionNode(Module, Name);
|
||||
|
||||
|
||||
@@ -122,10 +122,9 @@ public class NubStructFieldType(string name, NubType type, bool hasDefaultValue)
|
||||
public bool HasDefaultValue { get; } = hasDefaultValue;
|
||||
}
|
||||
|
||||
public class NubStructFuncType(string name, string? hook, List<NubType> parameters, NubType returnType)
|
||||
public class NubStructFuncType(string name, List<NubType> parameters, NubType returnType)
|
||||
{
|
||||
public string Name { get; } = name;
|
||||
public string? Hook { get; set; } = hook;
|
||||
public List<NubType> Parameters { get; } = parameters;
|
||||
public NubType ReturnType { get; } = returnType;
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ public sealed class TypeChecker
|
||||
{
|
||||
var parameters = x.Signature.Parameters.Select(y => ResolveType(y.Type)).ToList();
|
||||
var returnType = ResolveType(x.Signature.ReturnType);
|
||||
return new NubStructFuncType(x.Name, x.Hook, parameters, returnType);
|
||||
return new NubStructFuncType(x.Name, parameters, returnType);
|
||||
})
|
||||
.ToList();
|
||||
|
||||
@@ -173,7 +173,7 @@ public sealed class TypeChecker
|
||||
_funcReturnTypes.Push(ResolveType(function.Signature.ReturnType));
|
||||
var body = CheckBlock(function.Body);
|
||||
_funcReturnTypes.Pop();
|
||||
return new StructFuncNode(function.Name, function.Hook, CheckFuncSignature(function.Signature), body);
|
||||
return new StructFuncNode(function.Name, CheckFuncSignature(function.Signature), body);
|
||||
}
|
||||
|
||||
private StructFieldNode CheckStructField(StructFieldSyntax field)
|
||||
@@ -1060,7 +1060,7 @@ public sealed class TypeChecker
|
||||
.Select(y => ResolveType(y.Type))
|
||||
.ToList();
|
||||
|
||||
return new NubStructFuncType(x.Name, x.Hook, parameters, ResolveType(x.Signature.ReturnType));
|
||||
return new NubStructFuncType(x.Name, parameters, ResolveType(x.Signature.ReturnType));
|
||||
})
|
||||
.ToList();
|
||||
|
||||
@@ -1127,7 +1127,7 @@ public sealed class TypeChecker
|
||||
{
|
||||
var parameters = x.Signature.Parameters.Select(y => ResolveType(y.Type)).ToList();
|
||||
var returnType = ResolveType(x.Signature.ReturnType);
|
||||
return new NubStructFuncType(x.Name, x.Hook, parameters, returnType);
|
||||
return new NubStructFuncType(x.Name, parameters, returnType);
|
||||
})
|
||||
.ToList();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user