diff options
| author | Melodi <62381002+Melodi17@users.noreply.github.com> | 2025-08-27 21:22:55 +1000 |
|---|---|---|
| committer | Melodi <62381002+Melodi17@users.noreply.github.com> | 2025-08-27 21:22:55 +1000 |
| commit | 634681ce2bb36cd686943102a0f071cd6a09049f (patch) | |
| tree | 6710047aa231d50f57114bdd54a27c559fb20a73 /Compiler/FunctionReference.cs | |
| parent | 94ddc02e03ab942d0c881e29053e8df3d2940c30 (diff) | |
fixed bugs and revolutionized the universe
Diffstat (limited to 'Compiler/FunctionReference.cs')
| -rw-r--r-- | Compiler/FunctionReference.cs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/Compiler/FunctionReference.cs b/Compiler/FunctionReference.cs index cf120ad..b63247a 100644 --- a/Compiler/FunctionReference.cs +++ b/Compiler/FunctionReference.cs @@ -2,15 +2,16 @@ namespace Q1.Compiler; using System.Reflection.Metadata; using System.Text; +using visitors; public class FunctionReference { // TODO: Implement return type public string Name; - public string Type; + public CType Type; public List<FunctionOverload> Overloads = new(); - public FunctionReference(string name, string type) + public FunctionReference(string name, CType type) { this.Type = type; this.Name = name; @@ -18,7 +19,7 @@ public class FunctionReference public string GetBranchName(FunctionOverload overload) { - List<(string paramName, string paramType)> parameters = overload + List<(string paramName, CType paramType)> parameters = overload .ParameterNames .Zip(overload.ParameterTypes) .ToList(); @@ -37,7 +38,7 @@ public class FunctionReference public string GetBranchFriendlyName(FunctionOverload overload) { - List<(string paramName, string paramType)> parameters = overload + List<(string paramName, CType paramType)> parameters = overload .ParameterNames .Zip(overload.ParameterTypes) .ToList(); @@ -54,7 +55,7 @@ public class FunctionReference return branchName.ToString(); } - public FunctionOverload CreateOverloadWithBody(List<string> parameterNames, List<string> parameterTypes) + public FunctionOverload CreateOverloadWithBody(List<string> parameterNames, List<CType> parameterTypes) { FunctionOverload? existingOverload = this.Overloads .FirstOrDefault(x => x.ParamsMatch(parameterNames, parameterTypes)); @@ -76,7 +77,7 @@ public class FunctionReference } } - public FunctionOverload CreateOverloadWithoutBody(List<string> parameterNames, List<string> parameterTypes) + public FunctionOverload CreateOverloadWithoutBody(List<string> parameterNames, List<CType> parameterTypes) { FunctionOverload? existingOverload = this.Overloads .FirstOrDefault(x => x.ParamsMatch(parameterNames, parameterTypes)); @@ -109,19 +110,18 @@ public class FunctionReference public class FunctionOverload { - // TODO: Implement return type - public List<string> ParameterTypes; + public List<CType> ParameterTypes; public List<string> ParameterNames; public bool BodyImplemented; - public FunctionOverload(List<string> parameterNames, List<string> parameterTypes, bool bodyImplemented) + public FunctionOverload(List<string> parameterNames, List<CType> parameterTypes, bool bodyImplemented) { this.ParameterTypes = parameterTypes; this.ParameterNames = parameterNames; this.BodyImplemented = bodyImplemented; } - public bool ParamsMatch(List<string> parameterNames, List<string> parameterTypes) + public bool ParamsMatch(List<string> parameterNames, List<CType> parameterTypes) { return this.ParameterNames.SequenceEqual(parameterNames) && this.ParameterTypes.SequenceEqual(parameterTypes); |
