aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-24 05:57:35 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-24 05:57:35 +0000
commit99aeb02edd1614d30e308a9267325f138617d58f (patch)
treeed560c44f07ace6aa005a7a6f31ce87c18dd065a /src/interp
parentcef0dd1a5a078a0d8d6b635a2c247c81c00b2a12 (diff)
downloadopen-axiom-99aeb02edd1614d30e308a9267325f138617d58f.tar.gz
* interp/compiler.boot (compArgumentsAndTryAgain): Fail only if
elaboration of all arguments fails.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/compiler.boot3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index c6ffa376..e0fae8b4 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -494,8 +494,7 @@ compArgumentsAndTryAgain(form is [.,:argl],m,e) ==
-- modemap with selector b
form is ["elt",a,.] =>
([.,.,e]:= comp(a,$EmptyMode,e) or return nil; compForm1(form,m,e))
- u := for x in argl repeat [.,.,e]:= comp(x,$EmptyMode,e) or return "failed"
- u is "failed" => nil
+ +/[(e := T.env; 1) for x in argl | T := comp(x,$EmptyMode,e)] = 0 => nil
compForm1(form,m,e)
outputComp(x,e) ==