about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_metadata/creader.rs8
-rw-r--r--src/test/run-make/issue-37839/Makefile6
-rw-r--r--src/test/run-make/issue-37839/a.rs13
-rw-r--r--src/test/run-make/issue-37839/b.rs12
-rw-r--r--src/test/run-make/issue-37839/c.rs12
5 files changed, 47 insertions, 4 deletions
diff --git a/src/librustc_metadata/creader.rs b/src/librustc_metadata/creader.rs
index 4298bb47fea..5384535024e 100644
--- a/src/librustc_metadata/creader.rs
+++ b/src/librustc_metadata/creader.rs
@@ -318,11 +318,11 @@ impl<'a> CrateLoader<'a> {
                      name: &str,
                      hash: Option<&Svh>,
                      span: Span,
-                     kind: PathKind,
+                     path_kind: PathKind,
                      mut dep_kind: DepKind)
                      -> (CrateNum, Rc<cstore::CrateMetadata>) {
         info!("resolving crate `extern crate {} as {}`", name, ident);
-        let result = if let Some(cnum) = self.existing_match(name, hash, kind) {
+        let result = if let Some(cnum) = self.existing_match(name, hash, path_kind) {
             LoadResult::Previous(cnum)
         } else {
             info!("falling back to a load");
@@ -332,7 +332,7 @@ impl<'a> CrateLoader<'a> {
                 ident: ident,
                 crate_name: name,
                 hash: hash.map(|a| &*a),
-                filesearch: self.sess.target_filesearch(kind),
+                filesearch: self.sess.target_filesearch(path_kind),
                 target: &self.sess.target.target,
                 triple: &self.sess.opts.target_triple,
                 root: root,
@@ -350,7 +350,7 @@ impl<'a> CrateLoader<'a> {
                 let mut proc_macro_locator = locator::Context {
                     target: &self.sess.host,
                     triple: config::host_triple(),
-                    filesearch: self.sess.host_filesearch(PathKind::Crate),
+                    filesearch: self.sess.host_filesearch(path_kind),
                     rejected_via_hash: vec![],
                     rejected_via_triple: vec![],
                     rejected_via_kind: vec![],
diff --git a/src/test/run-make/issue-37839/Makefile b/src/test/run-make/issue-37839/Makefile
new file mode 100644
index 00000000000..f17ce537fb8
--- /dev/null
+++ b/src/test/run-make/issue-37839/Makefile
@@ -0,0 +1,6 @@
+-include ../tools.mk
+
+all:
+	$(RUSTC) a.rs && $(RUSTC) b.rs
+	$(BARE_RUSTC) c.rs -L dependency=$(TMPDIR) --extern b=$(TMPDIR)/libb.rlib \
+		--out-dir=$(TMPDIR)
diff --git a/src/test/run-make/issue-37839/a.rs b/src/test/run-make/issue-37839/a.rs
new file mode 100644
index 00000000000..3dff45388c7
--- /dev/null
+++ b/src/test/run-make/issue-37839/a.rs
@@ -0,0 +1,13 @@
+// Copyright 2016 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.
+
+#![feature(proc_macro)]
+#![allow(unused)]
+#![crate_type = "proc-macro"]
diff --git a/src/test/run-make/issue-37839/b.rs b/src/test/run-make/issue-37839/b.rs
new file mode 100644
index 00000000000..82f48f6d8d6
--- /dev/null
+++ b/src/test/run-make/issue-37839/b.rs
@@ -0,0 +1,12 @@
+// Copyright 2016 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.
+
+#![crate_type = "lib"]
+#[macro_use] extern crate a;
diff --git a/src/test/run-make/issue-37839/c.rs b/src/test/run-make/issue-37839/c.rs
new file mode 100644
index 00000000000..85bece51427
--- /dev/null
+++ b/src/test/run-make/issue-37839/c.rs
@@ -0,0 +1,12 @@
+// Copyright 2016 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.
+
+#![crate_type = "lib"]
+extern crate b;