diff options
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r-- | src/interp/compiler.boot | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index e9a97c6f..e070e214 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -334,8 +334,7 @@ compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) == return [['%function,x],m,e] x is ["+->",:.] => compLambda(x,m,oldE) if string? x then x := makeSymbol x - vl := formalVarList #sl - for m in sl for v in vl repeat + for m in sl for v in (vl:= take(#sl,$FormalMapVariableList)) repeat [.,.,e]:= compMakeDeclaration(v,m,e) (vl ~= nil) and not hasFormalMapVariable(x, vl) => [u,.,.] := comp([x,:vl],m',e) or return nil @@ -1357,7 +1356,7 @@ compHas(pred is ["has",a,b],m,e) == compHasFormat(db,pred is ["has",olda,b],e) == argl := $form.args - formals := formalVarList #argl + formals := take(#argl,$FormalMapVariableList) a := applySubst(pairList(formals,argl),olda) [a,.,e] := comp(a,$EmptyMode,e) or return nil a := applySubst(pairList(argl,formals),a) |