summaryrefslogtreecommitdiffstats
path: root/tests/ui/parser/attribute
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /tests/ui/parser/attribute
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/parser/attribute')
-rw-r--r--tests/ui/parser/attribute/attr-bad-meta-2.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-bad-meta-3.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-bad-meta.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-before-eof.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-dangling-in-fn.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-dangling-in-mod.stderr2
-rw-r--r--tests/ui/parser/attribute/attr-stmt-expr-attr-bad.rs6
-rw-r--r--tests/ui/parser/attribute/attr-stmt-expr-attr-bad.stderr12
-rw-r--r--tests/ui/parser/attribute/attr-with-a-semicolon.stderr2
-rw-r--r--tests/ui/parser/attribute/attr.stderr2
-rw-r--r--tests/ui/parser/attribute/attribute-with-no-generics-in-parameter-list.stderr2
-rw-r--r--tests/ui/parser/attribute/attrs-after-extern-mod.stderr2
-rw-r--r--tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.rs19
-rw-r--r--tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.stderr54
14 files changed, 92 insertions, 19 deletions
diff --git a/tests/ui/parser/attribute/attr-bad-meta-2.stderr b/tests/ui/parser/attribute/attr-bad-meta-2.stderr
index 6fc6fb665..98321827d 100644
--- a/tests/ui/parser/attribute/attr-bad-meta-2.stderr
+++ b/tests/ui/parser/attribute/attr-bad-meta-2.stderr
@@ -4,5 +4,5 @@ error: expected expression, found `]`
LL | #[path =]
| ^ expected expression
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-bad-meta-3.stderr b/tests/ui/parser/attribute/attr-bad-meta-3.stderr
index 4fa420c79..13eed2e1d 100644
--- a/tests/ui/parser/attribute/attr-bad-meta-3.stderr
+++ b/tests/ui/parser/attribute/attr-bad-meta-3.stderr
@@ -4,5 +4,5 @@ error: expected `]`, found `token`
LL | #[path() token]
| ^^^^^ expected `]`
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-bad-meta.stderr b/tests/ui/parser/attribute/attr-bad-meta.stderr
index 8d65c423c..4ca7d6d9f 100644
--- a/tests/ui/parser/attribute/attr-bad-meta.stderr
+++ b/tests/ui/parser/attribute/attr-bad-meta.stderr
@@ -4,5 +4,5 @@ error: expected one of `(`, `::`, `=`, `[`, `]`, or `{`, found `*`
LL | #[path*]
| ^ expected one of `(`, `::`, `=`, `[`, `]`, or `{`
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-before-eof.stderr b/tests/ui/parser/attribute/attr-before-eof.stderr
index a2acb9437..18a9d77bf 100644
--- a/tests/ui/parser/attribute/attr-before-eof.stderr
+++ b/tests/ui/parser/attribute/attr-before-eof.stderr
@@ -4,5 +4,5 @@ error: expected item after attributes
LL | #[derive(Debug)]
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-dangling-in-fn.stderr b/tests/ui/parser/attribute/attr-dangling-in-fn.stderr
index b1bb3ab3b..c7b948ea8 100644
--- a/tests/ui/parser/attribute/attr-dangling-in-fn.stderr
+++ b/tests/ui/parser/attribute/attr-dangling-in-fn.stderr
@@ -4,5 +4,5 @@ error: expected statement after outer attribute
LL | #[foo = "bar"]
| ^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-dangling-in-mod.stderr b/tests/ui/parser/attribute/attr-dangling-in-mod.stderr
index 1c892eac0..882400c1d 100644
--- a/tests/ui/parser/attribute/attr-dangling-in-mod.stderr
+++ b/tests/ui/parser/attribute/attr-dangling-in-mod.stderr
@@ -4,5 +4,5 @@ error: expected item after attributes
LL | #[foo = "bar"]
| ^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.rs b/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.rs
index d1950087c..2c402e4c6 100644
--- a/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.rs
+++ b/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.rs
@@ -84,15 +84,15 @@ fn main() {}
#[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
//~^ ERROR inclusive range with no end
-//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
+//~| ERROR expected one of `,`, `=>`, `if`, `|`, or `}`, found `#`
#[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
//~^ ERROR inclusive range with no end
-//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
+//~| 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 inclusive range with no end
-//~| ERROR expected one of `=>`, `if`, or `|`, found `#`
+//~| ERROR expected one of `,`, `=>`, `if`, `|`, or `}`, found `#`
#[cfg(FALSE)] fn e() { let _ = x.#![attr]foo(); }
//~^ ERROR unexpected token: `#`
diff --git a/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.stderr b/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.stderr
index e46c59108..a0e95c5c1 100644
--- a/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.stderr
+++ b/tests/ui/parser/attribute/attr-stmt-expr-attr-bad.stderr
@@ -365,11 +365,11 @@ LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
|
= note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
-error: expected one of `=>`, `if`, or `|`, found `#`
+error: expected one of `,`, `=>`, `if`, `|`, or `}`, found `#`
--> $DIR/attr-stmt-expr-attr-bad.rs:85:38
|
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] 10 => () } }
- | ^ expected one of `=>`, `if`, or `|`
+ | ^ expected one of `,`, `=>`, `if`, `|`, or `}`
error[E0586]: inclusive range with no end
--> $DIR/attr-stmt-expr-attr-bad.rs:88:35
@@ -379,11 +379,11 @@ LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
|
= note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
-error: expected one of `=>`, `if`, or `|`, found `#`
+error: expected one of `,`, `=>`, `if`, `|`, or `}`, found `#`
--> $DIR/attr-stmt-expr-attr-bad.rs:88:38
|
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] -10 => () } }
- | ^ expected one of `=>`, `if`, or `|`
+ | ^ expected one of `,`, `=>`, `if`, `|`, or `}`
error: unexpected token: `#`
--> $DIR/attr-stmt-expr-attr-bad.rs:91:39
@@ -399,11 +399,11 @@ LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] FOO => () } }
|
= note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
-error: expected one of `=>`, `if`, or `|`, found `#`
+error: expected one of `,`, `=>`, `if`, `|`, or `}`, found `#`
--> $DIR/attr-stmt-expr-attr-bad.rs:93:38
|
LL | #[cfg(FALSE)] fn e() { match 0 { 0..=#[attr] FOO => () } }
- | ^ expected one of `=>`, `if`, or `|`
+ | ^ expected one of `,`, `=>`, `if`, `|`, or `}`
error: unexpected token: `#`
--> $DIR/attr-stmt-expr-attr-bad.rs:97:34
diff --git a/tests/ui/parser/attribute/attr-with-a-semicolon.stderr b/tests/ui/parser/attribute/attr-with-a-semicolon.stderr
index 0de3490b8..b77f30fdb 100644
--- a/tests/ui/parser/attribute/attr-with-a-semicolon.stderr
+++ b/tests/ui/parser/attribute/attr-with-a-semicolon.stderr
@@ -10,5 +10,5 @@ LL - #[derive(Debug, Clone)];
LL + #[derive(Debug, Clone)]
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attr.stderr b/tests/ui/parser/attribute/attr.stderr
index 7cd0ac224..2e0b16efb 100644
--- a/tests/ui/parser/attribute/attr.stderr
+++ b/tests/ui/parser/attribute/attr.stderr
@@ -13,5 +13,5 @@ LL - #![lang = "foo"]
LL + #[lang = "foo"]
|
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attribute-with-no-generics-in-parameter-list.stderr b/tests/ui/parser/attribute/attribute-with-no-generics-in-parameter-list.stderr
index 4c5964715..3279e4e59 100644
--- a/tests/ui/parser/attribute/attribute-with-no-generics-in-parameter-list.stderr
+++ b/tests/ui/parser/attribute/attribute-with-no-generics-in-parameter-list.stderr
@@ -4,5 +4,5 @@ error: attribute without generic parameters
LL | fn foo<#[attr]>() {}
| ^^^^^^^ attributes are only permitted when preceding parameters
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/attrs-after-extern-mod.stderr b/tests/ui/parser/attribute/attrs-after-extern-mod.stderr
index 135d98457..f2bafa54f 100644
--- a/tests/ui/parser/attribute/attrs-after-extern-mod.stderr
+++ b/tests/ui/parser/attribute/attrs-after-extern-mod.stderr
@@ -8,5 +8,5 @@ LL | #[cfg(stage37)]
LL | }
| - the item list ends here
-error: aborting due to previous error
+error: aborting due to 1 previous error
diff --git a/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.rs b/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.rs
new file mode 100644
index 000000000..d97f24a3d
--- /dev/null
+++ b/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.rs
@@ -0,0 +1,19 @@
+#![feature(stmt_expr_attributes)]
+
+fn foo() -> String {
+ #[cfg(feature = "validation")]
+ [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>() //~ ERROR expected `;`, found `#`
+ #[cfg(not(feature = "validation"))]
+ String::new()
+}
+
+fn bar() -> String {
+ #[attr]
+ [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>() //~ ERROR expected `;`, found `#`
+ #[attr] //~ ERROR cannot find attribute `attr` in this scope
+ String::new()
+}
+
+fn main() {
+ println!("{}", foo());
+}
diff --git a/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.stderr b/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.stderr
new file mode 100644
index 000000000..a71253a5e
--- /dev/null
+++ b/tests/ui/parser/attribute/multiple-tail-expr-behind-cfg.stderr
@@ -0,0 +1,54 @@
+error: expected `;`, found `#`
+ --> $DIR/multiple-tail-expr-behind-cfg.rs:5:64
+ |
+LL | #[cfg(feature = "validation")]
+ | ------------------------------ only `;` terminated statements or tail expressions are allowed after this attribute
+LL | [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>()
+ | ^ expected `;` here
+LL | #[cfg(not(feature = "validation"))]
+ | - unexpected token
+ |
+help: add `;` here
+ |
+LL | [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>();
+ | +
+help: alternatively, consider surrounding the expression with a block
+ |
+LL | { [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>() }
+ | + +
+help: it seems like you are trying to provide different expressions depending on `cfg`, consider using `if cfg!(..)`
+ |
+LL ~ if cfg!(feature = "validation") {
+LL ~ [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>()
+LL ~ } else if cfg!(not(feature = "validation")) {
+LL ~ String::new()
+LL + }
+ |
+
+error: expected `;`, found `#`
+ --> $DIR/multiple-tail-expr-behind-cfg.rs:12:64
+ |
+LL | #[attr]
+ | ------- only `;` terminated statements or tail expressions are allowed after this attribute
+LL | [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>()
+ | ^ expected `;` here
+LL | #[attr]
+ | - unexpected token
+ |
+help: add `;` here
+ |
+LL | [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>();
+ | +
+help: alternatively, consider surrounding the expression with a block
+ |
+LL | { [1, 2, 3].iter().map(|c| c.to_string()).collect::<String>() }
+ | + +
+
+error: cannot find attribute `attr` in this scope
+ --> $DIR/multiple-tail-expr-behind-cfg.rs:13:7
+ |
+LL | #[attr]
+ | ^^^^
+
+error: aborting due to 3 previous errors
+