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);