parent
9cd3bef4cf
commit
a367cec6e3
3 changed files with 28 additions and 0 deletions
|
@ -24,6 +24,14 @@ pub fn expand_assert<'cx>(
|
|||
tts: &[TokenTree],
|
||||
) -> Box<dyn MacResult + 'cx> {
|
||||
let mut parser = cx.new_parser_from_tts(tts);
|
||||
|
||||
if parser.token == token::Eof {
|
||||
cx.struct_span_err(sp, "macro requires a boolean expression as an argument")
|
||||
.span_label(sp, "boolean expression required")
|
||||
.emit();
|
||||
return DummyResult::expr(sp);
|
||||
}
|
||||
|
||||
let cond_expr = panictry!(parser.parse_expr());
|
||||
let custom_msg_args = if parser.eat(&token::Comma) {
|
||||
let ts = parser.parse_tokens();
|
||||
|
|
4
src/test/ui/macros/assert.rs
Normal file
4
src/test/ui/macros/assert.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
fn main() {
|
||||
assert!(); //~ ERROR requires a boolean expression
|
||||
debug_assert!(); //~ ERROR requires a boolean expression
|
||||
}
|
16
src/test/ui/macros/assert.stderr
Normal file
16
src/test/ui/macros/assert.stderr
Normal file
|
@ -0,0 +1,16 @@
|
|||
error: macro requires a boolean expression as an argument
|
||||
--> $DIR/assert.rs:2:5
|
||||
|
|
||||
LL | assert!(); //~ ERROR requires a boolean expression
|
||||
| ^^^^^^^^^^ boolean expression required
|
||||
|
||||
error: macro requires a boolean expression as an argument
|
||||
--> $DIR/assert.rs:3:5
|
||||
|
|
||||
LL | debug_assert!(); //~ ERROR requires a boolean expression
|
||||
| ^^^^^^^^^^^^^^^^ boolean expression required
|
||||
|
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue