Skip to content

Commit 509d14f

Browse files
authored
Auto merge of #37846 - jseyfried:fix_proc_macro_dep, r=alexcrichton
Fix bug in proc_macro dependency loading Fixes #37839. r? @alexcrichton
2 parents 35e8924 + 8918ddf commit 509d14f

File tree

5 files changed

+47
-4
lines changed

5 files changed

+47
-4
lines changed

src/librustc_metadata/creader.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -318,11 +318,11 @@ impl<'a> CrateLoader<'a> {
318318
name: &str,
319319
hash: Option<&Svh>,
320320
span: Span,
321-
kind: PathKind,
321+
path_kind: PathKind,
322322
mut dep_kind: DepKind)
323323
-> (CrateNum, Rc<cstore::CrateMetadata>) {
324324
info!("resolving crate `extern crate {} as {}`", name, ident);
325-
let result = if let Some(cnum) = self.existing_match(name, hash, kind) {
325+
let result = if let Some(cnum) = self.existing_match(name, hash, path_kind) {
326326
LoadResult::Previous(cnum)
327327
} else {
328328
info!("falling back to a load");
@@ -332,7 +332,7 @@ impl<'a> CrateLoader<'a> {
332332
ident: ident,
333333
crate_name: name,
334334
hash: hash.map(|a| &*a),
335-
filesearch: self.sess.target_filesearch(kind),
335+
filesearch: self.sess.target_filesearch(path_kind),
336336
target: &self.sess.target.target,
337337
triple: &self.sess.opts.target_triple,
338338
root: root,
@@ -350,7 +350,7 @@ impl<'a> CrateLoader<'a> {
350350
let mut proc_macro_locator = locator::Context {
351351
target: &self.sess.host,
352352
triple: config::host_triple(),
353-
filesearch: self.sess.host_filesearch(PathKind::Crate),
353+
filesearch: self.sess.host_filesearch(path_kind),
354354
rejected_via_hash: vec![],
355355
rejected_via_triple: vec![],
356356
rejected_via_kind: vec![],
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-include ../tools.mk
2+
3+
all:
4+
$(RUSTC) a.rs && $(RUSTC) b.rs
5+
$(BARE_RUSTC) c.rs -L dependency=$(TMPDIR) --extern b=$(TMPDIR)/libb.rlib \
6+
--out-dir=$(TMPDIR)

src/test/run-make/issue-37839/a.rs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(proc_macro)]
12+
#![allow(unused)]
13+
#![crate_type = "proc-macro"]

src/test/run-make/issue-37839/b.rs

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type = "lib"]
12+
#[macro_use] extern crate a;

src/test/run-make/issue-37839/c.rs

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![crate_type = "lib"]
12+
extern crate b;

0 commit comments

Comments
 (0)