Skip to content

Commit b223c9c

Browse files
committed
rustc: Autovivify modules even when a type def is present in resolve. Closes #3931. rs=nasty-bug
1 parent 13c01dd commit b223c9c

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/librustc/middle/resolve.rs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1738,15 +1738,30 @@ impl Resolver {
17381738
match child_name_bindings.type_def {
17391739
None => {
17401740
debug!("(building reduced graph for external crate) \
1741-
autovivifying %s", *ident_str);
1741+
autovivifying missing type def %s",
1742+
*ident_str);
17421743
let parent_link = self.get_parent_link(new_parent,
17431744
ident);
17441745
(*child_name_bindings).define_module(Public,
17451746
parent_link,
1746-
None, false,
1747+
None,
1748+
false,
1749+
dummy_sp());
1750+
}
1751+
Some(copy type_ns_def)
1752+
if type_ns_def.module_def.is_none() => {
1753+
debug!("(building reduced graph for external crate) \
1754+
autovivifying missing module def %s",
1755+
*ident_str);
1756+
let parent_link = self.get_parent_link(new_parent,
1757+
ident);
1758+
(*child_name_bindings).define_module(Public,
1759+
parent_link,
1760+
None,
1761+
false,
17471762
dummy_sp());
17481763
}
1749-
Some(_) => { /* Fall through. */ }
1764+
_ => {} // Fall through.
17501765
}
17511766

17521767
current_module = (*child_name_bindings).get_module();

0 commit comments

Comments
 (0)