about summary refs log tree commit diff
path: root/src/test/ui/error-codes
AgeCommit message (Collapse)AuthorLines
2022-06-20Rollup merge of #98274 - compiler-errors:self-type-error, r=cjgillotYuki Okushi-0/+2
Minor improvements on error for `Self` type in items that don't allow it Fixes #93796
2022-06-19Mention what item is using an invalid `Self` typeMichael Goulet-0/+2
2022-06-19Be more specific for what lifetimes are not allowed onMichael Goulet-2/+2
2022-06-19Make missing argument placeholder more obvious that it's a placeholderMichael Goulet-8/+8
2022-06-16 fix one more case of trailing spaceklensy-10/+10
2022-06-16diagnostics: fix trailing spaceklensy-5/+5
2022-06-15Refactor path segment parameter errorEdwinRy-4/+6
2022-06-03Fully stabilize NLLJack Huey-167/+6
2022-06-03Auto merge of #97694 - Dylan-DPC:rollup-2yxo7ce, r=Dylan-DPCbors-4/+20
Rollup of 3 pull requests Successful merges: - #97415 (Compute `is_late_bound_map` query separately from lifetime resolution) - #97471 (Provide more context when denying invalid type params ) - #97681 (Add more eslint checks) Failed merges: - #97446 (Make hir().get_generics and generics_of consistent.) r? `@ghost` `@rustbot` modify labels: rollup
2022-06-03Rollup merge of #97471 - estebank:prohibit-generics, r=cjgillotDylan DPC-4/+20
Provide more context when denying invalid type params
2022-06-03Auto merge of #89862 - lcnr:path-generics-diagnostics, r=estebankbors-13/+14
rewrite error handling for unresolved inference vars Pretty much completely rewrites `fn emit_inference_failure_err`. This new setup should hopefully be easier to extend and is already a lot better when looking for generic arguments. Because this is a rewrite there are still some parts which are lacking, these are tracked in #94483 and will be fixed in later PRs. r? `@estebank` `@petrochenkov`
2022-06-03Use the same message as type & const generics.Camille GILLOT-5/+5
2022-06-02review commentsEsteban Küber-2/+2
2022-06-02Bless tests.Camille GILLOT-2/+2
2022-06-02Rollup merge of #97023 - cjgillot:uniform-anon, r=estebankDylan DPC-1/+1
Diagnose anonymous lifetimes errors more uniformly between async and regular fns Async fns and regular fns are desugared differently. For the former, we create a generic parameter at HIR level. For the latter, we just create an anonymous region for typeck. I plan to migrate regular fns to the async fn desugaring. Before that, this PR attempts to merge the diagnostics for both cases. r? ```@estebank```
2022-06-02add new `emit_inference_failure_err`lcnr-13/+14
2022-06-01Make output more specificEsteban Küber-4/+8
2022-06-01Provide more context when denying invalid type paramsEsteban Küber-0/+12
2022-06-01Rollup merge of #97264 - ↵Matthias Krüger-0/+2
TaKO8Ki:suggest-extern-crate-when-failing-to-resolve-use-crate, r=estebank Suggest `extern crate foo` when failing to resolve `use foo` closes #97095 r? ``@estebank``
2022-05-29Make lifetime errors more precise in the presence of `Fresh` lifetimes.Camille GILLOT-1/+1
2022-05-28Improve error message for E0081Bryysen-21/+60
Previously whenever a duplicate discriminant was detected for an Enum, we would print the discriminant bits in the diagnostic without any casting. This caused us to display incorrect values for negative discriminants. After this PR we format the discriminant signedness correctly. Also reworded some of the original error messages.
2022-05-25suggest `extern crate foo` when failing to resolve `use foo`Takayuki Maeda-0/+2
fix ci error
2022-05-22Use revisions for NLL in various directoriesJack Huey-18/+24
2022-05-20Rollup merge of #97109 - ↵Matthias Krüger-0/+6
TaKO8Ki:fix-misleading-cannot-infer-type-for-type-parameter-error, r=oli-obk Fix misleading `cannot infer type for type parameter` error closes #93198
2022-05-20report ambiguous type parameters when their parents are impl or fnTakayuki Maeda-0/+6
fix ci error emit err for `impl_item`
2022-05-19Improve u32 to char diagnosticgimbles-6/+3
2022-05-17Auto merge of #96825 - kckeiks:remove-item-like-visitor-trait, r=cjgillotbors-2/+2
Retire `ItemLikeVisitor` trait Issue #95004 cc `@cjgillot`
2022-05-15rustc: Stricter checking for #[link] attributesVadim Petrochenkov-10/+8
2022-05-13optimize find_item to fetch Item only when neededMiguel Guarniz-2/+2
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-05-06Resolve vars in note_type_errJack Huey-13/+0
2022-05-06Point at closure args tooJack Huey-0/+10
2022-05-06Auto merge of #96268 - ↵bors-2/+2
jackh726:remove-mutable_borrow_reservation_conflict-lint, r=nikomatsakis Remove mutable_borrow_reservation_conflict lint and allow the code pattern This was the only breaking issue with the NLL stabilization PR. Lang team decided to go ahead and allow this. r? `@nikomatsakis` Closes #59159 Closes #56254
2022-04-30Auto merge of #96347 - estebank:issue-96292, r=compiler-errorsbors-1/+4
Erase type params when suggesting fully qualified path When suggesting the use of a fully qualified path for a method call that is ambiguous because it has multiple candidates, erase type params in the resulting code, as they would result in an error when applied. We replace them with `_` in the output to rely on inference. There might be cases where this still produces slighlty incomplete suggestions, but it otherwise produces many more errors in relatively common cases. Fix #96292
2022-04-29Bless tests.Camille GILLOT-8/+8
2022-04-26Revert "add `DefId` to unsafety violations and display function path in E0133"Oli Scherer-1/+1
This reverts commit 8b8f6653cfd54525714f02efe7af0a0f830e185c.
2022-04-24only show a simple description in E0133 span labelEmil Gardström-2/+2
2022-04-24add `DefId` to unsafety violations and display function path in E0133Emil Gardström-4/+4
this enables consumers to access the function definition that was reported to be unsafe
2022-04-23Use more targetted suggestion span for fully qualified pathEsteban Küber-1/+4
2022-04-21make `E0117` error clearTakayuki Maeda-1/+1
2022-04-20Remove mutable_borrow_reservation_conflict lintJack Huey-2/+2
2022-04-17show suggestion to replace generic bounds with associated types in more casesRobin Appelman-1/+27
2022-04-16Implementation for 65853Jack Huey-19/+28
This attempts to bring better error messages to invalid method calls, by applying some heuristics to identify common mistakes. The algorithm is inspired by Levenshtein distance and longest common sub-sequence. In essence, we treat the types of the function, and the types of the arguments you provided as two "words" and compute the edits to get from one to the other. We then modify that algorithm to detect 4 cases: - A function input is missing - An extra argument was provided - The type of an argument is straight up invalid - Two arguments have been swapped - A subset of the arguments have been shuffled (We detect the last two as separate cases so that we can detect two swaps, instead of 4 parameters permuted.) It helps to understand this argument by paying special attention to terminology: "inputs" refers to the inputs being *expected* by the function, and "arguments" refers to what has been provided at the call site. The basic sketch of the algorithm is as follows: - Construct a boolean grid, with a row for each argument, and a column for each input. The cell [i, j] is true if the i'th argument could satisfy the j'th input. - If we find an argument that could satisfy no inputs, provided for an input that can't be satisfied by any other argument, we consider this an "invalid type". - Extra arguments are those that can't satisfy any input, provided for an input that *could* be satisfied by another argument. - Missing inputs are inputs that can't be satisfied by any argument, where the provided argument could satisfy another input - Swapped / Permuted arguments are identified with a cycle detection algorithm. As each issue is found, we remove the relevant inputs / arguments and check for more issues. If we find no issues, we match up any "valid" arguments, and start again. Note that there's a lot of extra complexity: - We try to stay efficient on the happy path, only computing the diagonal until we find a problem, and then filling in the rest of the matrix. - Closure arguments are wrapped in a tuple and need to be unwrapped - We need to resolve closure types after the rest, to allow the most specific type constraints - We need to handle imported C functions that might be variadic in their inputs. I tried to document a lot of this in comments in the code and keep the naming clear.
2022-04-10--bless testsMaybe Waffle-0/+5
2022-04-05Rollup merge of #95525 - ohno418:suggest-derivable-trait-E0277, ↵Dylan DPC-0/+30
r=compiler-errors Suggest derivable trait on E0277 error Closes https://github.com/rust-lang/rust/issues/95099 .
2022-04-05macros: support translatable labelsDavid Wood-1/+1
Extends support for generating `DiagnosticMessage::FluentIdentifier` messages from `SessionDiagnostic` derive to `#[label]`. Signed-off-by: David Wood <david.wood@huawei.com>
2022-04-05Suggest derivable trait on E0277ohno418-0/+30
2022-03-30rework error messages for incorrect inherent implslcnr-4/+20
2022-03-30fix behavior for empty implslcnr-1/+1
2022-03-30update ui testslcnr-43/+4
2022-03-22interpret/memory: simplify check_and_deref_ptrRalf Jung-1/+1