-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)
Description
Unsure of a better title for this, but I don't see why it's invalid to do. It makes adding some additional debug logging inside macros quite tedious. This example is a simple modification of one of the macros defined in the rust book (just above the introduction to recursive macros).
macro_rules! foo {
($v:ident) => (
let $v = 3;
println!("{}", $v); // If you comment this then it's fine.
);
}
fn main() {
foo!(x);
println!("{}", x);
}
Expected:
print 3
(the value of x) twice
Actual:
<anon>:4:24: 4:26 error: unresolved name `x`
<anon>:4 println!("{}", $v); // If you comment this then it's fine.
^~
note: in expansion of format_args!
<std macros>:2:25: 2:56 note: expansion site
<std macros>:1:1: 2:62 note: in expansion of print!
<std macros>:3:1: 3:54 note: expansion site
<std macros>:1:1: 3:58 note: in expansion of println!
<anon>:4:9: 4:27 note: expansion site
<anon>:1:1: 6:2 note: in expansion of foo!
<anon>:9:5: 9:13 note: expansion site
Metadata
Metadata
Assignees
Labels
A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
jbclements commentedon Jun 11, 2015
Yes, this looks totally broken to me.
jseyfried commentedon Jun 9, 2016
This was fixed in #32923.
TimNN commentedon Sep 16, 2016
Closing, since this has been fixed.