From c25cc8bdcfb4be31cc575d4e28d4083a71b3651f Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Thu, 15 Oct 2026 14:53:05 -0700 Subject: [PATCH] Remove needless calls to resolve Without partial caching, this isn't needed. --- .../src/main/java/dev/ionfusion/fusion/DefineValuesForm.java | 4 ++-- runtime/src/main/java/dev/ionfusion/fusion/LambdaForm.java | 5 +---- .../src/main/java/dev/ionfusion/fusion/LetValuesForm.java | 4 +--- runtime/src/main/java/dev/ionfusion/fusion/LetrecForm.java | 1 - 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/runtime/src/main/java/dev/ionfusion/fusion/DefineValuesForm.java b/runtime/src/main/java/dev/ionfusion/fusion/DefineValuesForm.java index 2aa8306e..85030a3c 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/DefineValuesForm.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/DefineValuesForm.java @@ -144,8 +144,8 @@ private static SyntaxSymbol[] checkIds(Evaluator eval, SyntaxChecker formChecker int size = argSexp.size(eval); for (int i = 0; i < size; i++) { - // Prepare the identifiers so they resolve to their own binding. - subformChecker.requiredIdentifier(i).resolve(); + // Syntax-check the binders + subformChecker.requiredIdentifier(i); } // Check for duplicate identifiers diff --git a/runtime/src/main/java/dev/ionfusion/fusion/LambdaForm.java b/runtime/src/main/java/dev/ionfusion/fusion/LambdaForm.java index b54b0524..64bd4bc5 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/LambdaForm.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/LambdaForm.java @@ -54,10 +54,7 @@ SyntaxValue expand(Expander expander, Environment env, SyntaxSexp stx) // Prepare the bound names so they resolve to their own binding. for (int i = 0; i < args.length; i++) { - SyntaxSymbol arg = args[i]; - arg = (SyntaxSymbol) arg.addWrap(localEnv.getWrap()); - arg.resolve(); // Caches the binding in the identifier - args[i] = arg; + args[i] = (SyntaxSymbol) args[i].addWrap(localEnv.getWrap()); } if (formals instanceof SyntaxSymbol) diff --git a/runtime/src/main/java/dev/ionfusion/fusion/LetValuesForm.java b/runtime/src/main/java/dev/ionfusion/fusion/LetValuesForm.java index da54161a..8747a9b0 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/LetValuesForm.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/LetValuesForm.java @@ -90,9 +90,7 @@ SyntaxValue expand(Expander expander, Environment env, SyntaxSexp stx) SyntaxSymbol name = boundNames[bindingPos]; assert name == wrappedNames[j]; - name = (SyntaxSymbol) name.addWrap(localWrap); - name.resolve(); - wrappedNames[j] = name; + wrappedNames[j] = name.addWrap(localWrap); bindingPos++; } names = names.copyReplacingChildren(eval, wrappedNames); diff --git a/runtime/src/main/java/dev/ionfusion/fusion/LetrecForm.java b/runtime/src/main/java/dev/ionfusion/fusion/LetrecForm.java index 4ddf387d..a62d0eeb 100644 --- a/runtime/src/main/java/dev/ionfusion/fusion/LetrecForm.java +++ b/runtime/src/main/java/dev/ionfusion/fusion/LetrecForm.java @@ -46,7 +46,6 @@ SyntaxValue expand(Expander expander, Environment env, SyntaxSexp stx) { // Wrap the bound names so they resolve to their own binding. SyntaxSymbol name = (SyntaxSymbol) boundNames[i].addWrap(localWrap); - name.resolve(); // Already type- and arity-checked this above SyntaxSexp binding = (SyntaxSexp) bindingForms.get(eval, i);