Fix bug in safe-reference checker
At some point, a refactor broke the code that handled local declarations to no longer descend into the initializer expressions. Closes #1846
This commit is contained in:
parent
9ff5ba085d
commit
16e5760564
3 changed files with 24 additions and 36 deletions
|
@ -1378,13 +1378,13 @@ fn lookup_glob_in_mod(e: env, info: @indexed_mod, sp: span, id: ident,
|
|||
// absence takes the place of todo()
|
||||
if !info.glob_imported_names.contains_key(id) {
|
||||
info.glob_imported_names.insert(id, glob_resolving(sp));
|
||||
let val = lookup_in_globs(e, info.glob_imports, sp, id,
|
||||
// kludge
|
||||
(if wanted_ns == ns_val(ns_a_enum)
|
||||
{ ns_val(ns_a_enum) }
|
||||
else { ns_val(ns_any_value) }), dr);
|
||||
let typ = lookup_in_globs(e, info.glob_imports, sp, id, ns_type, dr);
|
||||
let md = lookup_in_globs(e, info.glob_imports, sp, id, ns_module, dr);
|
||||
// kludge
|
||||
let val_ns = if wanted_ns == ns_val(ns_a_enum) { ns_val(ns_a_enum) }
|
||||
else { ns_val(ns_any_value) };
|
||||
let globs = info.glob_imports;
|
||||
let val = lookup_in_globs(e, globs, sp, id, val_ns, dr);
|
||||
let typ = lookup_in_globs(e, globs, sp, id, ns_type, dr);
|
||||
let md = lookup_in_globs(e, globs, sp, id, ns_module, dr);
|
||||
info.glob_imported_names.insert(id, glob_resolved(val, typ, md));
|
||||
}
|
||||
alt info.glob_imported_names.get(id) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue