Closed
Description
The following crate no longer compiles as of the most recent nightly. The relevant commit range is f7af19c...bdfd698. Mentioning @petrochenkov @matthewjasper because #63535 sounds relevant – is this an intentional change?
Cargo.toml
[package]
name = "repro"
version = "0.0.0"
edition = "2018"
publish = false
[lib]
proc-macro = true
src/lib.rs
extern crate proc_macro;
use proc_macro::TokenStream;
#[proc_macro_derive(repro)]
pub fn d(_input: TokenStream) -> TokenStream {
"macro_rules! m {()=>{}}".parse().unwrap()
}
src/main.rs
#[derive(repro::repro)]
pub struct S;
m!();
fn main() {}
$ cargo +stable check
Compiling repro v0.0.0
Finished dev [unoptimized + debuginfo] target(s) in 0.18s
$ cargo +nightly-2019-08-16 check
Compiling repro v0.0.0
Finished dev [unoptimized + debuginfo] target(s) in 0.18s
$ cargo +nightly-2019-08-17 check
Compiling repro v0.0.0
error: cannot find macro `m!` in this scope
--> src/main.rs:4:1
|
4 | m!();
| ^
|
= help: have you added the `#[macro_use]` on the module/import?
Metadata
Metadata
Assignees
Labels
Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: Name/path resolution done by `rustc_resolve` specificallyCategory: This is a bug.High priorityRelevant to the compiler team, which will review and decide on the PR/issue.Performance or correctness regression from stable to nightly.