Skip to content

Commit 13686b6

Browse files
committed
Use real crate name in crate_map name
`use` statement may introduce an crate name alias. This patch always uses the link attrbute "name" as the crate's name when building the crate map. Closes #1706
1 parent 139420f commit 13686b6

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Diff for: src/rustc/metadata/creader.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,11 @@ fn resolve_crate(e: env, ident: ast::ident, metas: [@ast::meta_item],
355355
// Now resolve the crates referenced by this crate
356356
let cnum_map = resolve_crate_deps(e, cdata);
357357

358-
let cmeta = @{name: ident, data: cdata,
358+
let cname = alt attr::meta_item_value_from_list(metas, "name") {
359+
option::some(v) { v }
360+
option::none { ident }
361+
};
362+
let cmeta = @{name: cname, data: cdata,
359363
cnum_map: cnum_map, cnum: cnum};
360364

361365
let cstore = e.sess.cstore;

Diff for: src/test/run-pass/use-crate-name-alias.rs

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// Issue #1706
2+
use stdlib(name="std");
3+
4+
fn main() {}

0 commit comments

Comments
 (0)