about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-05-01 00:56:48 -0700
committerbors <bors@rust-lang.org>2014-05-01 00:56:48 -0700
commit5c0abead8200344d90105b4dff8b148c65287674 (patch)
treef88722b8b8b95afc3fb4946062252d26d8c326ba
parent9f484e616e8731c3fd9346460a71156ddba454b4 (diff)
parent8c87eff70061040f97125cad36bb175337cac96a (diff)
downloadrust-5c0abead8200344d90105b4dff8b148c65287674.tar.gz
rust-5c0abead8200344d90105b4dff8b148c65287674.zip
auto merge of #13873 : alexcrichton/rust/issue-13872, r=Aatch
This was just a typo in the decoder using the source crate's number rather than
the destination crate's number of a reexport.

Closes #13872
-rw-r--r--src/librustc/metadata/decoder.rs2
-rw-r--r--src/test/auxiliary/issue-13872-1.rs11
-rw-r--r--src/test/auxiliary/issue-13872-2.rs13
-rw-r--r--src/test/auxiliary/issue-13872-3.rs19
-rw-r--r--src/test/run-pass/issue-13872.rs19
5 files changed, 63 insertions, 1 deletions
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs
index 6d5744340cc..93fc8b26e77 100644
--- a/src/librustc/metadata/decoder.rs
+++ b/src/librustc/metadata/decoder.rs
@@ -610,7 +610,7 @@ fn each_child_of_item_or_crate(intr: Rc<IdentInterner>,
                 // Hand off the item to the callback.
                 let def_like = item_to_def_like(child_item_doc,
                                                 child_def_id,
-                                                cdata.cnum);
+                                                child_def_id.krate);
                 // These items have a public visibility because they're part of
                 // a public re-export.
                 callback(def_like, token::str_to_ident(name), ast::Public);
diff --git a/src/test/auxiliary/issue-13872-1.rs b/src/test/auxiliary/issue-13872-1.rs
new file mode 100644
index 00000000000..941b67eb2da
--- /dev/null
+++ b/src/test/auxiliary/issue-13872-1.rs
@@ -0,0 +1,11 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+pub enum A { B }
diff --git a/src/test/auxiliary/issue-13872-2.rs b/src/test/auxiliary/issue-13872-2.rs
new file mode 100644
index 00000000000..ebfada18858
--- /dev/null
+++ b/src/test/auxiliary/issue-13872-2.rs
@@ -0,0 +1,13 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+extern crate foo = "issue-13872-1";
+
+pub use foo::B;
diff --git a/src/test/auxiliary/issue-13872-3.rs b/src/test/auxiliary/issue-13872-3.rs
new file mode 100644
index 00000000000..7356b604a0e
--- /dev/null
+++ b/src/test/auxiliary/issue-13872-3.rs
@@ -0,0 +1,19 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+extern crate bar = "issue-13872-2";
+
+use bar::B;
+
+pub fn foo() {
+    match B {
+        B => {}
+    }
+}
diff --git a/src/test/run-pass/issue-13872.rs b/src/test/run-pass/issue-13872.rs
new file mode 100644
index 00000000000..3c19e908e16
--- /dev/null
+++ b/src/test/run-pass/issue-13872.rs
@@ -0,0 +1,19 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// aux-build:issue-13872-1.rs
+// aux-build:issue-13872-2.rs
+// aux-build:issue-13872-3.rs
+
+extern crate other = "issue-13872-3";
+
+fn main() {
+    other::foo();
+}