(if (not (not X)) Y Z) compiles as (if X Y Z), etc.
svn: r1770
This commit is contained in:
parent
f4cae8e9ca
commit
274fa978cf
|
@ -1034,16 +1034,20 @@ static Scheme_Object *resolve_branch(Scheme_Object *o, Resolve_Info *info)
|
||||||
/* Done here because `not' is easily recognized at this
|
/* Done here because `not' is easily recognized at this
|
||||||
point, and we haven't yet resolved Scheme-stack locations
|
point, and we haven't yet resolved Scheme-stack locations
|
||||||
so it's ok to remove an application. */
|
so it's ok to remove an application. */
|
||||||
if (SAME_TYPE(SCHEME_TYPE(t), scheme_application2_type)) {
|
while (1) {
|
||||||
Scheme_App2_Rec *app;
|
if (SAME_TYPE(SCHEME_TYPE(t), scheme_application2_type)) {
|
||||||
|
Scheme_App2_Rec *app;
|
||||||
|
|
||||||
app = (Scheme_App2_Rec *)t;
|
app = (Scheme_App2_Rec *)t;
|
||||||
if (SAME_PTR(scheme_not_prim, app->rator)) {
|
if (SAME_PTR(scheme_not_prim, app->rator)) {
|
||||||
t = tb;
|
t = tb;
|
||||||
tb = fb;
|
tb = fb;
|
||||||
fb = t;
|
fb = t;
|
||||||
t = app->rand;
|
t = app->rand;
|
||||||
}
|
} else
|
||||||
|
break;
|
||||||
|
} else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
t = scheme_resolve_expr(t, info);
|
t = scheme_resolve_expr(t, info);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user