Rollup merge of #56491 - euclio:assert-error, r=estebank
emit error with span for empty asserts Fixes #55547.
This commit is contained in:
commit
dec7b19516
@ -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…
x
Reference in New Issue
Block a user