libexpr: add multi-arg app nodes

these behave like the old chains of app nodes, but they can store more
than one argument per node. for tApp values themselves this is not all
that useful, but if we could share tApp and tPrimOpApp backing storage
we could avoid creating and traversing the linked lists of values that
are currently needed to represent partially applied builtin functions.

Change-Id: I5a2a02d9733e1e0be5443459e2998d62fd3b9a5b
This commit is contained in:
eldritch horrors
2025-09-29 17:56:05 +02:00
parent 3350ab8a56
commit 0b5b14ddc7
5 changed files with 69 additions and 21 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ TEST_F(ValuePrintingTests, vThunk)
TEST_F(ValuePrintingTests, vApp)
{
Value vApp;
vApp.mkApp(nullptr, nullptr);
vApp.mkApp(&vApp, &vApp);
test(vApp, "«thunk»");
}