Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Avoid returning original macro if expansion fails.
Closes #11692. Instead of returning the original expression, a dummy expression (with identical span) is returned. This prevents infinite loops of failed expansions as well as odd double error messages in certain situations.
- Loading branch information
Showing
11 changed files
with
53 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// Copyright 2014 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. | ||
|
||
fn main() { | ||
print!(test!()); | ||
//~^ ERROR: macro undefined: 'test' | ||
//~^^ ERROR: format argument must be a string literal | ||
|
||
concat!(test!()); | ||
//~^ ERROR: macro undefined: 'test' | ||
//~^^ ERROR: expected a literal | ||
} |
0bdfd0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from alexcrichton
at rcxdude@0bdfd0f
0bdfd0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging rcxdude/rust/macro_fix = 0bdfd0f into auto
0bdfd0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rcxdude/rust/macro_fix = 0bdfd0f merged ok, testing candidate = 99f8380
0bdfd0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/4332
success: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-c/builds/2174
success: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-t/builds/2175
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/4330
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/3430
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/3436
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/4345
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/3433
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/3439
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/4347
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/3433
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/3438
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/3507
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/1286
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/4339
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/3440
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/3446
success: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/4107
0bdfd0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = 99f8380