Arrow func

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

View File

@@ -17,7 +17,7 @@ public partial class QBEGenerator
BoundStructInitializer structInitializer => EmitStructInitializer(structInitializer),
BoundAddressOf addressOf => EmitAddressOf(addressOf),
BoundDereference dereference => EmitDereference(dereference),
BoundAnonymousFunc anonymousFunc => EmitAnonymousFunc(anonymousFunc),
BoundArrowFunc arrowFunc => EmitArrowFunc(arrowFunc),
BoundBinaryExpression binaryExpression => EmitBinaryExpression(binaryExpression),
BoundFuncCall funcCallExpression => EmitFuncCall(funcCallExpression),
BoundExternFuncIdent externFuncIdent => EmitExternFuncIdent(externFuncIdent),
@@ -33,11 +33,11 @@ public partial class QBEGenerator
};
}
private Val EmitAnonymousFunc(BoundAnonymousFunc anonymousFunc)
private Val EmitArrowFunc(BoundArrowFunc arrowFunc)
{
var name = $"$anon_func{++_anonymousFuncIndex}";
_anonymousFunctions.Enqueue((anonymousFunc, name));
return new Val(name, anonymousFunc.Type, ValKind.Direct);
var name = $"$arrow_func{++_arrowFuncIndex}";
_arrowFunctions.Enqueue((arrowFunc, name));
return new Val(name, arrowFunc.Type, ValKind.Direct);
}
private Val EmitArrayIndexAccess(BoundArrayIndexAccess arrayIndexAccess)