yukang
22aa104bce
don't suggest turning crate-level attributes into outer style
2024-08-04 00:11:16 +08:00
Esteban Küber
692bc344d5
Make parse error suggestions verbose and fix spans
...
Go over all structured parser suggestions and make them verbose style.
When suggesting to add or remove delimiters, turn them into multiple suggestion parts.
2024-07-12 03:02:57 +00:00
Nicholas Nethercote
aaa220e875
Move parse_or_use_outer_attributes
out of parse_expr_prefix_range
.
...
This eliminates another `Option<AttrWrapper>` argument and changes one
obscure error message.
2024-06-19 19:12:00 +10:00
Rémy Rakic
216424da32
Revert "Rollup merge of #124099 - voidc:disallow-ambiguous-expr-attrs, r=davidtwco"
...
This reverts commit 57dad1d75e
, reversing
changes made to 36316df9fe
.
2024-06-06 20:39:54 +00:00
León Orell Valerian Liehr
0ad3c5da72
Fix parse error message for meta items
2024-05-10 09:16:27 +02:00
Urgau
d4e26fbb53
compiletest: add enable-by-default check-cfg
2024-05-04 11:30:38 +02:00
Dominik Stolz
5af861cf7b
Disallow ambiguous attributes on expressions
2024-04-18 20:42:19 +02:00
Urgau
c4a97d9407
Unify all the always-false cfgs under the FALSE
cfg
2024-04-07 01:16:45 +02:00
Nicholas Nethercote
8ac16c6193
Rewrite parse_meta_item
.
...
It can't use `maybe_whole`, but it can match `maybe_whole` more closely.
Also add a test for a case that wasn't previously covered.
2024-03-21 10:16:09 +11:00
Lieselotte
1658ca082a
Properly emit expected ;
on #[attr] expr
2024-02-26 21:47:10 +01:00
许杰友 Jieyou Xu (Joe)
ec2cc761bc
[AUTO-GENERATED] Migrate ui tests from //
to //@
directives
2024-02-16 20:02:50 +00:00
Esteban Küber
a5d9def321
Properly recover from trailing attr in body
...
When encountering an attribute in a body, we try to recover from an
attribute on an expression (as opposed to a statement). We need to
properly clean up when the attribute is at the end of the body where a
tail expression would be.
Fix #118164 .
2024-01-26 23:11:42 +00:00
sjwang05
aa8ecd0652
Suggest quoting unquoted idents in attrs
2024-01-12 13:59:47 -08:00
Lieselotte
7d6cd6bf1f
Don't expect bodyless arms if the pattern can never be a never pattern
2023-12-28 15:02:17 +01:00
Nadrieril
80bdcbf50a
Parse a pattern with no arm
2023-12-03 12:25:46 +01:00
Nilstrieb
41e8d152dc
Show number in error message even for one error
...
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Esteban Küber
a16722d221
Handle attempts to have multiple cfg
d tail expressions
...
When encountering code that seems like it might be trying to have
multiple tail expressions depending on `cfg` information, suggest
alternatives that will success to parse.
```rust
fn foo() -> String {
#[cfg(feature = "validation")]
[1, 2, 3].iter().map(|c| c.to_string()).collect::<String>()
#[cfg(not(feature = "validation"))]
String::new()
}
```
```
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 + }
|
```
Fix #106020 .
2023-11-16 21:21:26 +00:00
Esteban Küber
5c17b8be61
Move some tests around
2023-10-09 19:24:05 +00:00