fix problems with internal calls to syntax-track-origin

This commit is contained in:
Matthew Flatt 2015-09-07 08:22:21 -06:00
parent c1ef6b999d
commit 5ca752c92b
2 changed files with 5 additions and 4 deletions

View File

@ -4482,9 +4482,8 @@ static Scheme_Object *install_alt_from_rename(Scheme_Object *first, Scheme_Objec
Scheme_Object *tail;
tail = scheme_stx_taint_disarm(first, NULL);
tail = SCHEME_STX_CDR(tail);
alt_first = scheme_datum_to_syntax(scheme_make_pair(alt_first, tail),
first, first, 0, 1);
return scheme_stx_track(alt_first, first, first);
return scheme_datum_to_syntax(scheme_make_pair(alt_first, tail),
first, first, 0, 1);
} else
return alt_first;
} else
@ -4698,7 +4697,7 @@ compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env,
if (scheme_stx_has_empty_wraps(form, scheme_env_phase(env->genv))
&& same_effective_env(SCHEME_PTR2_VAL(var), env)) {
/* FIXME [Ryan?]: this needs EXPAND_OBSERVE callbacks. */
form = scheme_stx_track(SCHEME_PTR1_VAL(var), form, form);
form = scheme_stx_track(SCHEME_PTR1_VAL(var), form, NULL);
if (!rec[drec].comp) {
/* Already fully expanded. */
return form;

View File

@ -536,6 +536,8 @@ Scheme_Object *scheme_stx_track(Scheme_Object *naya,
Scheme_Object *e1, *key, *val;
mzlonglong i;
STX_ASSERT(!origin || SCHEME_STX_SYMBOLP(origin));
if (nstx->props)
ne = nstx->props;
else