summary refs log tree commit diff
path: root/tests/ui/structs
AgeCommit message (Collapse)AuthorLines
2024-08-05Test more cases of WF-checking for fieldsNoah Lev-10/+151
2024-08-05WF-check struct field types at construction siteNoah Lev-1/+22
Rustc of course already WF-checked the field types at the definition site, but for error tainting of consts to work properly, there needs to be an error emitted at the use site. Previously, with no use-site error, we proceeded with CTFE and ran into ICEs since we are running code with type errors. Emitting use-site errors also brings struct-like constructors more in line with fn-like constructors since they already emit use-site errors for WF issues.
2024-08-05Add test for WF check of implied unsizing in struct fieldsNoah Lev-0/+33
Note that the test output is currently *incorrect*. We should be emitting an error at the use site too, not just at the definition. This is partly for UI reasons, but mainly to fix a related ICE where a const generic body is not tainted with an error since no usage error is reported.
2024-07-22Revert suggestion verbosity changeEsteban Küber-24/+12
2024-07-22Change suggestion message wordingEsteban Küber-4/+4
2024-07-22Use verbose suggestion for "wrong # of generics"Esteban Küber-12/+24
2024-07-12Make parse error suggestions verbose and fix spansEsteban Küber-6/+19
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-04Use shorter span for float literal suggestionEsteban Küber-32/+48
2024-05-01Handle normalization failure in `struct_tail_erasing_lifetimes`Gurinder Singh-0/+36
Fixes an ICE that occurred when the struct in question has an error
2024-02-16[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives许杰友 Jieyou Xu (Joe)-14/+14
2023-11-24Show number in error message even for one errorNilstrieb-17/+17
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-19Rollup merge of #117110 - estebank:deref-field-suggestion, r=b-naberTakayuki Maeda-7/+42
Suggest field typo through derefs Take into account implicit dereferences when suggesting fields. ``` error[E0609]: no field `longname` on type `Arc<S>` --> $DIR/suggest-field-through-deref.rs:10:15 | LL | let _ = x.longname; | ^^^^^^^^ help: a field with a similar name exists: `long_name` ``` CC https://github.com/rust-lang/rust/issues/78374#issuecomment-719564114
2023-11-18tweak logic of "unknown field" labelEsteban Küber-5/+30
2023-11-16recover primary span labelEsteban Küber-2/+2
2023-11-16Suggest `unwrap()` on field not found for `Result`/`Option`Esteban Küber-2/+12
When encountering a `Result<T, _>` or `Option<T>` where `T` has a field that's being accessed, suggest calling `.unwrap()` to get to the field.
2023-11-16Suggest replacing `Self` with the right type on type errorEsteban Küber-0/+4
When encountering a type error caused by the use of `Self`, suggest using the actual type name instead. ``` error[E0308]: mismatched types --> $DIR/struct-path-self-type-mismatch.rs:13:9 | LL | impl<T> Foo<T> { | - ------ this is the type of the `Self` literal | | | found type parameter LL | fn new<U>(u: U) -> Foo<U> { | - ------ expected `Foo<U>` because of return type | | | expected type parameter LL | / Self { LL | | LL | | inner: u LL | | LL | | } | |_________^ expected `Foo<U>`, found `Foo<T>` | = note: expected struct `Foo<U>` found struct `Foo<T>` = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters help: use the type name directly | LL | Foo::<U> { | ~~~~~~~~ ``` Fix #76086.
2023-11-16Point at impl self ty on type error involving `Self`Esteban Küber-1/+3
When encountering a type error involving a `Self` literal, point at the self type of the enclosing `impl`. CC #76086.
2023-11-10Recurse over the method chain and maintain a stack to peek at previous ↵Swapna Iyer-0/+46
receiver to align spans
2023-10-17Unify suggestion wordingEsteban Küber-3/+3
2023-06-22Tweak privacy errors to account for reachable itemsEsteban Küber-2/+6
Suggest publicly accessible paths for items in private mod: When encountering a path in non-import situations that are not reachable due to privacy constraints, search for any public re-exports that the user could use instead. Track whether an import suggestion is offering a re-export. When encountering a path with private segments, mention if the item at the final path segment is not publicly accessible at all. Add item visibility metadata to privacy errors from imports: On unreachable imports, record the item that was being imported in order to suggest publicly available re-exports or to be explicit that the item is not available publicly from any path. In order to allow this, we add a mode to `resolve_path` that will not add new privacy errors, nor return early if it encounters one. This way we can get the `Res` corresponding to the final item in the import, which is used in the privacy error machinery.
2023-06-05Don't mention already set fieldsMichael Goulet-3/+3
2023-04-12Tweak output for 'add line' suggestionEsteban Küber-1/+2
2023-03-30better diagnostics for pattern matching tuple structsMaciej Wasilewski-2/+21
Better diagnostic message when trying to pattern match a tuple struct with a struct pattern.
2023-02-23diagnostics: remove inconsistent English article "this" from E0107Michael Howell-8/+8
Consider `tests/ui/const-generics/generic_const_exprs/issue-102768.stderr`, the error message where it gives additional notes about where the associated type is defined, and how the dead code lint doesn't have an article, like in `tests/ui/lint/dead-code/issue-85255.stderr`. They don't have articles, so it seems unnecessary to have one here.
2023-01-30Modify primary span label for E0308Esteban Küber-9/+9
The previous output was unintuitive to users.
2023-01-11When suggesting writing a fully qualified path probe for appropriate typesEsteban Küber-3/+3
Fix #46585.
2023-01-11Move /src/test to /testsAlbert Larsan-0/+1699