mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 08:44:35 +00:00
fix(resolve): not defined extern crate shadow_name
This commit is contained in:
parent
8b4b20836b
commit
c41b2089c7
@ -873,6 +873,11 @@ impl<'a, 'b, 'tcx> BuildReducedGraphVisitor<'a, 'b, 'tcx> {
|
||||
let msg = "macro-expanded `extern crate` items cannot \
|
||||
shadow names passed with `--extern`";
|
||||
self.r.tcx.sess.span_err(item.span, msg);
|
||||
// `return` is intended to discard this binding because it's an
|
||||
// unregistered ambiguity error which would result in a panic
|
||||
// caused by inconsistency `path_res`
|
||||
// more details: https://github.com/rust-lang/rust/pull/111761
|
||||
return;
|
||||
}
|
||||
}
|
||||
let entry = self.r.extern_prelude.entry(ident.normalize_to_macros_2_0()).or_insert(
|
||||
|
@ -106,7 +106,7 @@ impl Determinacy {
|
||||
/// A specific scope in which a name can be looked up.
|
||||
/// This enum is currently used only for early resolution (imports and macros),
|
||||
/// but not for late resolution yet.
|
||||
#[derive(Clone, Copy)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
enum Scope<'a> {
|
||||
DeriveHelpers(LocalExpnId),
|
||||
DeriveHelpersCompat,
|
||||
|
15
tests/ui/imports/issue-109148.rs
Normal file
15
tests/ui/imports/issue-109148.rs
Normal file
@ -0,0 +1,15 @@
|
||||
// edition: 2021
|
||||
|
||||
// https://github.com/rust-lang/rust/pull/111761#issuecomment-1557777314
|
||||
macro_rules! m {
|
||||
() => {
|
||||
extern crate core as std;
|
||||
//~^ ERROR macro-expanded `extern crate` items cannot shadow names passed with `--extern`
|
||||
}
|
||||
}
|
||||
|
||||
m!();
|
||||
|
||||
use std::mem;
|
||||
|
||||
fn main() {}
|
13
tests/ui/imports/issue-109148.stderr
Normal file
13
tests/ui/imports/issue-109148.stderr
Normal file
@ -0,0 +1,13 @@
|
||||
error: macro-expanded `extern crate` items cannot shadow names passed with `--extern`
|
||||
--> $DIR/issue-109148.rs:6:9
|
||||
|
|
||||
LL | extern crate core as std;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...
|
||||
LL | m!();
|
||||
| ---- in this macro invocation
|
||||
|
|
||||
= note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue
Block a user