summaryrefslogtreecommitdiff
path: root/Compiler/FunctionReference.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-27 21:22:55 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-27 21:22:55 +1000
commit634681ce2bb36cd686943102a0f071cd6a09049f (patch)
tree6710047aa231d50f57114bdd54a27c559fb20a73 /Compiler/FunctionReference.cs
parent94ddc02e03ab942d0c881e29053e8df3d2940c30 (diff)
fixed bugs and revolutionized the universe
Diffstat (limited to 'Compiler/FunctionReference.cs')
-rw-r--r--Compiler/FunctionReference.cs20
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);