Arrow func

This commit is contained in:
nub31
2025-07-09 18:17:43 +02:00
parent 4fff98b010
commit d6dcbe3217
9 changed files with 41 additions and 26 deletions

View File

@@ -16,12 +16,12 @@ public partial class QBEGenerator
private readonly List<StringLiteral> _stringLiterals = [];
private readonly Stack<string> _breakLabels = [];
private readonly Stack<string> _continueLabels = [];
private readonly Queue<(BoundAnonymousFunc Func, string Name)> _anonymousFunctions = [];
private readonly Queue<(BoundArrowFunc Func, string Name)> _arrowFunctions = [];
private readonly Dictionary<BoundTraitFuncImpl, string> _implFunctions = [];
private readonly Stack<Scope> _scopes = [];
private int _tmpIndex;
private int _labelIndex;
private int _anonymousFuncIndex;
private int _arrowFuncIndex;
private int _cStringLiteralIndex;
private int _stringLiteralIndex;
private int _implFuncNameIndex;
@@ -42,12 +42,12 @@ public partial class QBEGenerator
_stringLiterals.Clear();
_breakLabels.Clear();
_continueLabels.Clear();
_anonymousFunctions.Clear();
_arrowFunctions.Clear();
_implFunctions.Clear();
_scopes.Clear();
_tmpIndex = 0;
_labelIndex = 0;
_anonymousFuncIndex = 0;
_arrowFuncIndex = 0;
_cStringLiteralIndex = 0;
_stringLiteralIndex = 0;
_implFuncNameIndex = 0;
@@ -71,9 +71,9 @@ public partial class QBEGenerator
_writer.NewLine();
}
while (_anonymousFunctions.TryDequeue(out var anon))
while (_arrowFunctions.TryDequeue(out var arrowFunc))
{
EmitFuncDefinition(anon.Name, anon.Func.Parameters, anon.Func.ReturnType, anon.Func.Body);
EmitFuncDefinition(arrowFunc.Name, arrowFunc.Func.Parameters, arrowFunc.Func.ReturnType, arrowFunc.Func.Body);
_writer.NewLine();
}