ast_stmt_expr_attr -> pretty & ui tests
This commit is contained in:
parent
9b53c5be06
commit
19db2d2fed
8 changed files with 692 additions and 311 deletions
2
src/test/ui/parser/attr-stmt-expr-attr-bad-2.rs
Normal file
2
src/test/ui/parser/attr-stmt-expr-attr-bad-2.rs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#[cfg(FALSE)] fn e() { let _ = x.#![attr]foo(); }
|
||||
//~^ ERROR unexpected token: `#`
|
||||
8
src/test/ui/parser/attr-stmt-expr-attr-bad-2.stderr
Normal file
8
src/test/ui/parser/attr-stmt-expr-attr-bad-2.stderr
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
error: unexpected token: `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad-2.rs:1:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = x.#![attr]foo(); }
|
||||
| ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
2
src/test/ui/parser/attr-stmt-expr-attr-bad-3.rs
Normal file
2
src/test/ui/parser/attr-stmt-expr-attr-bad-3.rs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#[cfg(FALSE)] fn e() { let _ = x.#[attr]foo(); }
|
||||
//~^ ERROR unexpected token: `#`
|
||||
8
src/test/ui/parser/attr-stmt-expr-attr-bad-3.stderr
Normal file
8
src/test/ui/parser/attr-stmt-expr-attr-bad-3.stderr
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
error: unexpected token: `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad-3.rs:1:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = x.#[attr]foo(); }
|
||||
| ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
107
src/test/ui/parser/attr-stmt-expr-attr-bad.rs
Normal file
107
src/test/ui/parser/attr-stmt-expr-attr-bad.rs
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
fn main() {}
|
||||
|
||||
#[cfg(FALSE)] fn e() { let _ = box #![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = [#[attr]]; }
|
||||
//~^ ERROR expected expression, found `]`
|
||||
#[cfg(FALSE)] fn e() { let _ = foo#[attr](); }
|
||||
//~^ ERROR expected one of
|
||||
#[cfg(FALSE)] fn e() { let _ = foo(#![attr]); }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
//~| ERROR expected expression, found `)`
|
||||
#[cfg(FALSE)] fn e() { let _ = x.foo(#![attr]); }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
//~| ERROR expected expression, found `)`
|
||||
#[cfg(FALSE)] fn e() { let _ = 0 + #![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = !#![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = -#![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = x #![attr] as Y; }
|
||||
//~^ ERROR expected one of
|
||||
#[cfg(FALSE)] fn e() { let _ = || #![attr] foo; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = move || #![attr] foo; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = || #![attr] {foo}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = move || #![attr] {foo}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] ..#[attr] 0; }
|
||||
//~^ ERROR expected expression, found `..`
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] ..; }
|
||||
//~^ ERROR expected expression, found `..`
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] &#![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] &mut #![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] if 0 {}; }
|
||||
//~^ ERROR attributes are not yet allowed on `if` expressions
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} #[attr] else {}; }
|
||||
//~^ ERROR expected one of
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} else #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} else {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} else #[attr] if 0 {}; }
|
||||
//~^ ERROR attributes are not yet allowed on `if` expressions
|
||||
//~| ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} else if 0 #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if 0 {} else if 0 {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = #[attr] if let _ = 0 {}; }
|
||||
//~^ ERROR attributes are not yet allowed on `if` expressions
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} #[attr] else {}; }
|
||||
//~^ ERROR expected one of
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else #[attr] if let _ = 0 {}; }
|
||||
//~^ ERROR attributes are not yet allowed on `if` expressions
|
||||
//~| ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else if let _ = 0 #[attr] {}; }
|
||||
//~^ ERROR expected `{`, found `#`
|
||||
#[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else if let _ = 0 {#![attr]}; }
|
||||
//~^ ERROR an inner attribute is not permitted in this context
|
||||
|
||||
#[cfg(FALSE)] fn s() { #[attr] #![attr] let _ = 0; }
|
||||
//~^ ERROR an inner attribute is not permitted following an outer attribute
|
||||
#[cfg(FALSE)] fn s() { #[attr] #![attr] 0; }
|
||||
//~^ ERROR an inner attribute is not permitted following an outer attribute
|
||||
#[cfg(FALSE)] fn s() { #[attr] #![attr] foo!(); }
|
||||
//~^ ERROR an inner attribute is not permitted following an outer attribute
|
||||
#[cfg(FALSE)] fn s() { #[attr] #![attr] foo![]; }
|
||||
//~^ ERROR an inner attribute is not permitted following an outer attribute
|
||||
#[cfg(FALSE)] fn s() { #[attr] #![attr] foo!{}; }
|
||||
//~^ ERROR an inner attribute is not permitted following an outer attribute
|
||||
|
||||
// FIXME: Allow attributes in pattern constexprs?
|
||||
// note: requires parens in patterns to allow disambiguation
|
||||
|
||||
#[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
|
||||
//~^ ERROR `X..=` range patterns are not supported
|
||||
//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
|
||||
#[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
|
||||
//~^ ERROR `X..=` range patterns are not supported
|
||||
//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
|
||||
#[cfg(FALSE)] fn e() { match 0 { 0..=-#[attr] 10 => () } }
|
||||
//~^ ERROR unexpected token: `#`
|
||||
#[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] FOO => () } }
|
||||
//~^ ERROR `X..=` range patterns are not supported
|
||||
//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
|
||||
|
||||
// make sure we don't catch this bug again...
|
||||
#[cfg(FALSE)] fn e() { { fn foo() { #[attr]; } } }
|
||||
//~^ ERROR expected statement after outer attribute
|
||||
#[cfg(FALSE)] fn e() { { fn foo() { #[attr] } } }
|
||||
390
src/test/ui/parser/attr-stmt-expr-attr-bad.stderr
Normal file
390
src/test/ui/parser/attr-stmt-expr-attr-bad.stderr
Normal file
|
|
@ -0,0 +1,390 @@
|
|||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:3:36
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = box #![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected expression, found `]`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:5:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = [#[attr]]; }
|
||||
| ^ expected expression
|
||||
|
||||
error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, or an operator, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:7:35
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = foo#[attr](); }
|
||||
| ^ expected one of 7 possible tokens
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:9:36
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = foo(#![attr]); }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected expression, found `)`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:9:44
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = foo(#![attr]); }
|
||||
| ^ expected expression
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:12:38
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = x.foo(#![attr]); }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected expression, found `)`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:12:46
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = x.foo(#![attr]); }
|
||||
| ^ expected expression
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:15:36
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = 0 + #![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:17:33
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = !#![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:19:33
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = -#![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, or an operator, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:21:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = x #![attr] as Y; }
|
||||
| ^ expected one of 7 possible tokens
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:23:35
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = || #![attr] foo; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:25:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = move || #![attr] foo; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:27:35
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = || #![attr] {foo}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:29:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = move || #![attr] {foo}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected expression, found `..`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:31:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] ..#[attr] 0; }
|
||||
| ^^ expected expression
|
||||
|
||||
error: expected expression, found `..`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:33:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] ..; }
|
||||
| ^^ expected expression
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:35:41
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] &#![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:37:45
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] &mut #![attr] 0; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: attributes are not yet allowed on `if` expressions
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:39:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] if 0 {}; }
|
||||
| ^^^^^^^
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:41:37
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 #[attr] {}; }
|
||||
| -- ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| | |
|
||||
| | expected `{`
|
||||
| this `if` statement has a condition, but no block
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:43:38
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected one of `.`, `;`, `?`, `else`, or an operator, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:45:40
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} #[attr] else {}; }
|
||||
| ^ expected one of `.`, `;`, `?`, `else`, or an operator
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:47:45
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else #[attr] {}; }
|
||||
| ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| |
|
||||
| expected `{`
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:49:46
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: attributes are not yet allowed on `if` expressions
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:51:45
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else #[attr] if 0 {}; }
|
||||
| ^^^^^^^
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:51:45
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else #[attr] if 0 {}; }
|
||||
| ^ -------- help: try placing this code inside a block: `{ if 0 {}; }`
|
||||
| |
|
||||
| expected `{`
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:54:50
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else if 0 #[attr] {}; }
|
||||
| -- ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| | |
|
||||
| | expected `{`
|
||||
| this `if` statement has a condition, but no block
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:56:51
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if 0 {} else if 0 {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: attributes are not yet allowed on `if` expressions
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:58:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = #[attr] if let _ = 0 {}; }
|
||||
| ^^^^^^^
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:60:45
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 #[attr] {}; }
|
||||
| -- ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| | |
|
||||
| | expected `{`
|
||||
| this `if` statement has a condition, but no block
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:62:46
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: expected one of `.`, `;`, `?`, `else`, or an operator, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:64:48
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} #[attr] else {}; }
|
||||
| ^ expected one of `.`, `;`, `?`, `else`, or an operator
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:66:53
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else #[attr] {}; }
|
||||
| ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| |
|
||||
| expected `{`
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:68:54
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: attributes are not yet allowed on `if` expressions
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:70:53
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else #[attr] if let _ = 0 {}; }
|
||||
| ^^^^^^^
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:70:53
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else #[attr] if let _ = 0 {}; }
|
||||
| ^ ---------------- help: try placing this code inside a block: `{ if let _ = 0 {}; }`
|
||||
| |
|
||||
| expected `{`
|
||||
|
||||
error: expected `{`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:73:66
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else if let _ = 0 #[attr] {}; }
|
||||
| -- ^ --- help: try placing this code inside a block: `{ {}; }`
|
||||
| | |
|
||||
| | expected `{`
|
||||
| this `if` statement has a condition, but no block
|
||||
|
||||
error: an inner attribute is not permitted in this context
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:75:67
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { let _ = if let _ = 0 {} else if let _ = 0 {#![attr]}; }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted following an outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:78:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn s() { #[attr] #![attr] let _ = 0; }
|
||||
| ------- ^^^^^^^^ not permitted following an outer attibute
|
||||
| |
|
||||
| previous outer attribute
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted following an outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:80:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn s() { #[attr] #![attr] 0; }
|
||||
| ------- ^^^^^^^^ not permitted following an outer attibute
|
||||
| |
|
||||
| previous outer attribute
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted following an outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:82:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn s() { #[attr] #![attr] foo!(); }
|
||||
| ------- ^^^^^^^^ not permitted following an outer attibute
|
||||
| |
|
||||
| previous outer attribute
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted following an outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:84:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn s() { #[attr] #![attr] foo![]; }
|
||||
| ------- ^^^^^^^^ not permitted following an outer attibute
|
||||
| |
|
||||
| previous outer attribute
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: an inner attribute is not permitted following an outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:86:32
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn s() { #[attr] #![attr] foo!{}; }
|
||||
| ------- ^^^^^^^^ not permitted following an outer attibute
|
||||
| |
|
||||
| previous outer attribute
|
||||
|
|
||||
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
|
||||
|
||||
error: `X..=` range patterns are not supported
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:92:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
|
||||
| ^^^^ help: try using the maximum value for the type: `0..=MAX`
|
||||
|
||||
error: expected one of `=>`, `if`, or `|`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:92:38
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
|
||||
| ^ expected one of `=>`, `if`, or `|`
|
||||
|
||||
error: `X..=` range patterns are not supported
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:95:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
|
||||
| ^^^^ help: try using the maximum value for the type: `0..=MAX`
|
||||
|
||||
error: expected one of `=>`, `if`, or `|`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:95:38
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
|
||||
| ^ expected one of `=>`, `if`, or `|`
|
||||
|
||||
error: unexpected token: `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:98:39
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=-#[attr] 10 => () } }
|
||||
| ^
|
||||
|
||||
error: `X..=` range patterns are not supported
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:100:34
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] FOO => () } }
|
||||
| ^^^^ help: try using the maximum value for the type: `0..=MAX`
|
||||
|
||||
error: expected one of `=>`, `if`, or `|`, found `#`
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:100:38
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] FOO => () } }
|
||||
| ^ expected one of `=>`, `if`, or `|`
|
||||
|
||||
error: expected statement after outer attribute
|
||||
--> $DIR/attr-stmt-expr-attr-bad.rs:105:44
|
||||
|
|
||||
LL | #[cfg(FALSE)] fn e() { { fn foo() { #[attr]; } } }
|
||||
| ^
|
||||
|
||||
error: aborting due to 52 previous errors
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue