rust/src/test/ui/error-codes
Jack Huey b6c87c555f Implementation for 65853
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-16 02:26:56 -04:00
..
auxiliary Add long explanation for E0464 2021-10-12 13:10:12 -07:00
e0119 no overlap errors after failing the orphan check 2021-11-10 15:10:19 +01:00
E0001.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0001.stderr Normalise notes with the/is 2020-01-24 16:24:50 +00:00
E0004-2.rs tests: remove ignore directives from tests that mention core/alloc/std spans. 2020-04-02 11:48:34 +03:00
E0004-2.stderr Change wording of suggestion to add missing match arm 2022-03-08 00:20:41 +00:00
E0004.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0004.stderr Change wording of suggestion to add missing match arm 2022-03-08 00:20:41 +00:00
E0005.rs tests: remove ignore directives from tests that mention core/alloc/std spans. 2020-04-02 11:48:34 +03:00
E0005.stderr Suggest if let/let_else for refutable pat in let 2022-03-08 16:32:08 +00:00
E0010-teach.rs Bless tests 2020-09-29 19:20:33 -07:00
E0010-teach.stderr Bless tests 2020-09-29 19:20:33 -07:00
E0010.rs Bless tests 2020-09-29 19:20:33 -07:00
E0010.stderr Bless tests 2020-09-29 19:20:33 -07:00
E0017.rs Permit mutable references in all const contexts 2021-01-23 11:33:45 +00:00
E0017.stderr Adjust wording of a diagnostic 2021-01-23 11:33:45 +00:00
E0023.rs Fix #64744 -- handle zero sub-pats case. 2019-09-24 22:42:45 +02:00
E0023.stderr Adjust spans 2021-08-25 14:40:06 -07:00
E0025.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0025.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0026-teach.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0026-teach.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0026.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0026.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0027.rs don't suggest erroneous trailing comma after .. 2021-01-16 16:01:36 -08:00
E0027.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0029-teach.rs char not char 2020-09-26 13:34:49 +01:00
E0029-teach.stderr char not char 2020-09-26 13:34:49 +01:00
E0029.rs char not char 2020-09-26 13:34:49 +01:00
E0029.stderr char not char 2020-09-26 13:34:49 +01:00
E0030-teach.rs Never stop due to errors before borrow checking 2019-04-22 13:11:53 -07:00
E0030-teach.stderr Never stop due to errors before borrow checking 2019-04-22 13:11:53 -07:00
E0030.rs Update tests 2020-01-09 21:23:12 +03:00
E0030.stderr Update tests 2020-01-09 21:23:12 +03:00
E0033-teach.rs On object safety violation, point at source when possible 2019-09-02 20:22:22 -07:00
E0033-teach.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0033.rs On object safety violation, point at source when possible 2019-09-02 20:22:22 -07:00
E0033.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0034.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0034.stderr Fix incorrect disambiguation suggestion for associated items 2021-09-25 21:47:33 +02:00
E0038.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0038.stderr Move object safety suggestions to the end of the error 2021-09-15 14:48:53 +00:00
E0040.fixed Fix structured suggestion for explicit drop call 2021-01-17 16:48:52 -08:00
E0040.rs Fix structured suggestion for explicit drop call 2021-01-17 16:48:52 -08:00
E0040.stderr Fix structured suggestion for explicit drop call 2021-01-17 16:48:52 -08:00
E0044.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0044.stderr Make wording less confusing 2019-09-11 00:29:35 +01:00
E0045.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0045.stderr Update tests 2019-03-11 23:10:26 +03:00
E0049.rs Point at individual type arguments on arg count mismatch 2019-06-01 10:35:31 -07:00
E0049.stderr Point at individual type arguments on arg count mismatch 2019-06-01 10:35:31 -07:00
E0050.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0050.stderr Update tests 2019-03-11 23:10:26 +03:00
E0054.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0054.stderr Update tests 2019-03-11 23:10:26 +03:00
E0055.rs standardize limit comparisons with Limit type 2020-05-28 10:33:07 +01:00
E0055.stderr Improve help for recursion limit errors 2021-09-28 22:17:13 +02:00
E0057.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0057.stderr Implementation for 65853 2022-04-16 02:26:56 -04:00
E0059.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0059.stderr Update tests 2019-03-11 23:10:26 +03:00
E0060.rs Implementation for 65853 2022-04-16 02:26:56 -04:00
E0060.stderr Implementation for 65853 2022-04-16 02:26:56 -04:00
E0061.rs Implementation for 65853 2022-04-16 02:26:56 -04:00
E0061.stderr Implementation for 65853 2022-04-16 02:26:56 -04:00
E0062.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0062.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0063.rs Remove redundant ignore-tidy-linelength annotations 2021-04-03 22:30:20 +02:00
E0063.stderr Remove redundant ignore-tidy-linelength annotations 2021-04-03 22:30:20 +02:00
E0067.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0067.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
E0069.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0069.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0070.rs On type mismatch caused by assignment, point at assignee 2021-11-25 18:04:33 +00:00
E0070.stderr On type mismatch caused by assignment, point at assignee 2021-11-25 18:04:33 +00:00
E0071.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0071.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0075.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0075.stderr Update tests 2019-03-11 23:10:26 +03:00
E0076.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0076.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0077.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0077.stderr Support repr(simd) on ADTs containing a single array field 2020-11-08 12:01:48 +10:00
E0080.rs Make invalid integer operation messages consistent 2020-09-26 13:34:49 +01:00
E0080.stderr Make invalid integer operation messages consistent 2020-09-26 13:34:49 +01:00
E0081.rs Show discriminant before overflow in diagnostic. 2021-07-28 10:04:23 +02:00
E0081.stderr Show discriminant before overflow in diagnostic. 2021-07-28 10:04:23 +02:00
E0084.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0084.stderr Update tests 2019-03-11 23:10:26 +03:00
E0091.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0091.stderr Update tests 2019-03-11 23:10:26 +03:00
E0092.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0092.stderr Update tests 2019-03-11 23:10:26 +03:00
E0093.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0093.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0094.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0094.stderr Update tests 2019-03-11 23:10:26 +03:00
E0106.rs When encountering an expected named lifetime and none are present, suggest adding one 2020-01-19 17:31:33 -08:00
E0106.stderr Use more accurate spans when proposing adding lifetime to item 2021-08-18 10:25:15 +00:00
E0107.rs Fix span of redundant generic arguments 2021-05-30 22:46:06 +09:00
E0107.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0109.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0109.stderr Update tests 2019-03-20 18:32:52 +00:00
E0110.rs Update tests 2019-03-20 18:32:52 +00:00
E0110.stderr Update tests 2019-03-20 18:32:52 +00:00
E0116.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0116.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0117.rs rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
E0117.stderr no overlap errors after failing the orphan check 2021-11-10 15:10:19 +01:00
E0118.rs rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
E0118.stderr rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
E0119.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0119.stderr Remove trailing : from E0119 message 2021-04-06 18:16:11 -07:00
E0120.rs rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
E0120.stderr clarify that Drop can be implemented for enums and unions too 2020-01-03 17:57:24 -05:00
E0121.rs Account for bad placeholder errors on consts/statics with trait objects 2021-06-10 12:06:47 +09:00
E0121.stderr generic_arg_infer: placeholder in signature err 2022-01-18 12:23:43 +01:00
E0124.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0124.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0128.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0128.stderr Some refactoring 2021-03-23 17:16:20 +00:00
E0130.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0130.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0131.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0131.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0132.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0132.stderr Update tests 2019-03-11 23:10:26 +03:00
E0133.mir.stderr Test -Zthir-unsafeck for unsafe function calls 2021-05-11 20:35:38 +02:00
E0133.rs Test -Zthir-unsafeck for unsafe function calls 2021-05-11 20:35:38 +02:00
E0133.thir.stderr Test -Zthir-unsafeck for unsafe function calls 2021-05-11 20:35:38 +02:00
E0138.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0138.stderr Add backticks to various diagnostics 2020-01-05 00:17:46 +00:00
E0152.rs Detect incorrect number of lang item generics 2021-08-23 10:15:25 -04:00
E0152.stderr Detect incorrect number of lang item generics 2021-08-23 10:15:25 -04:00
E0161.edition.stderr Remove all migrate.nll.stderr files 2021-11-30 12:05:34 +11:00
E0161.migrate.stderr Remove all migrate.nll.stderr files 2021-11-30 12:05:34 +11:00
E0161.nll.stderr Remove all migrate.nll.stderr files 2021-11-30 12:05:34 +11:00
E0161.rs Remove all migrate.nll.stderr files 2021-11-30 12:05:34 +11:00
E0161.zflags.stderr Remove all migrate.nll.stderr files 2021-11-30 12:05:34 +11:00
E0164.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0164.stderr Improve the "try using a variant of the expected type" hint. 2019-10-28 18:43:51 +01:00
E0184.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0184.stderr macros: support translatable labels 2022-04-05 07:01:03 +01:00
E0185.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0185.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0186.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0186.stderr Update tests 2019-03-11 23:10:26 +03:00
E0191.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0191.stderr Tweak errors for missing associated types and type parameters 2019-12-24 22:02:43 -08:00
E0194.rs Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
E0194.stderr Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
E0195.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0195.stderr Update tests 2019-03-11 23:10:26 +03:00
E0197.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0197.stderr review comments 2020-03-05 15:39:35 -08:00
E0198.rs introduce negative_impls feature gate and document 2020-03-26 06:52:55 -04:00
E0198.stderr review comments 2020-03-05 15:39:35 -08:00
E0199.rs introduce negative_impls feature gate and document 2020-03-26 06:52:55 -04:00
E0199.stderr Update tests 2019-03-11 23:10:26 +03:00
E0200.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0200.stderr Update tests 2019-03-11 23:10:26 +03:00
E0201.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0201.stderr Update tests 2019-03-11 23:10:26 +03:00
E0206.rs impl Copy/Clone for arrays in std, not in compiler 2021-11-08 13:11:58 -05:00
E0206.stderr impl Copy/Clone for arrays in std, not in compiler 2021-11-08 13:11:58 -05:00
E0207.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0207.stderr Update tests 2019-03-11 23:10:26 +03:00
E0214.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0214.stderr Point at correct span for parenthesized types 2019-09-22 11:33:12 -07:00
E0220.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0220.stderr Fix suggestion span for typo in associated type name 2019-12-24 22:25:45 -08:00
E0221.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0221.stderr Use smaller spans for some structured suggestions 2021-08-12 09:52:38 +00:00
E0223.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0223.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0225.rs Addressed points raised in review. 2019-05-20 16:12:49 +01:00
E0225.stderr Consistently use 'supertrait'. 2021-10-02 08:05:44 +07:00
E0227.rs docs(error-codes): Add long error explanation for E0227 2021-12-28 15:46:20 +03:00
E0227.stderr docs(error-codes): Add long error explanation for E0227 2021-12-28 15:46:20 +03:00
E0229.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0229.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0252.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0252.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0253.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0253.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0254.rs Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
E0254.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0255.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0255.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0259.rs Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
E0259.stderr Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
E0260.rs Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
E0260.stderr Remove lint annotations in specific crates that are already enforced by rustbuild 2019-07-28 18:46:24 +03:00
E0261.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0261.stderr Remove in-band lifetimes 2022-02-24 18:50:33 -08:00
E0262.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0262.stderr Update tests 2019-03-11 23:10:26 +03:00
E0263.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0263.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0264.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0264.stderr Update tests 2019-03-11 23:10:26 +03:00
E0267.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0267.stderr improve diagnostics: break/continue wrong context 2019-08-21 13:17:59 +03:00
E0268.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0268.stderr improve diagnostics: break/continue wrong context 2019-08-21 13:17:59 +03:00
E0271.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0271.stderr Tweak assoc type obligation spans 2021-12-11 02:32:15 +00:00
E0275.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0275.stderr Point at source of trait bound obligations in more places 2021-11-20 18:54:31 +00:00
E0276.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0276.stderr Point at bounds when comparing impl items to trait 2021-11-20 18:54:31 +00:00
E0277-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0277-2.stderr Use note to point at bound introducing requirement 2021-08-16 17:47:22 +00:00
E0277-3.rs Suggest derivable trait on E0277 2022-04-05 11:14:32 +09:00
E0277-3.stderr Suggest derivable trait on E0277 2022-04-05 11:14:32 +09:00
E0277.rs Drop support for cloudabi targets 2020-11-22 17:11:41 -05:00
E0277.stderr Point at call span that introduced obligation for the arg 2021-09-16 12:12:27 +00:00
E0282.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0282.stderr Suggest giving return type to closures on E0282 2019-08-13 16:41:43 -07:00
E0283.rs Add test case for suggestion E0283 2021-01-18 21:57:15 +09:00
E0283.stderr Do not mention associated items when they introduce an obligation 2021-11-20 19:19:31 +00:00
E0297.rs tests: remove ignore directives from tests that mention core/alloc/std spans. 2020-04-02 11:48:34 +03:00
E0297.stderr Point at uncovered variants in enum definition in note instead of a span_label 2022-03-08 00:19:08 +00:00
E0308-2.rs added a test case for reporting mismatched traits 2020-07-23 20:21:28 -04:00
E0308-2.stderr Remove textual span from diagnostic string 2021-10-13 10:53:44 +00:00
E0308-4.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0308-4.stderr MatchExpressionArmPattern: Use more generic wording. 2019-12-30 13:50:20 +01:00
E0308.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0308.stderr Surround types with backticks in type errors 2019-11-18 11:03:04 -08:00
E0328.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0328.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0365.rs Clarify error messages caused by re-exporting pub(crate) visibility to outside 2021-11-20 10:47:33 +09:00
E0365.stderr Clarify error messages caused by re-exporting pub(crate) visibility to outside 2021-11-20 10:47:33 +09:00
E0370.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0370.stderr Update tests 2019-03-11 23:10:26 +03:00
E0374.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0374.stderr Update tests 2019-03-11 23:10:26 +03:00
E0375.rs Remove unnecessary ignore-tidy-linelength 2019-04-23 11:42:14 +01:00
E0375.stderr Update ui tests 2019-04-23 11:42:14 +01:00
E0376.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0376.stderr Update tests 2019-03-11 23:10:26 +03:00
E0388.rs Permit mutable references in all const contexts 2021-01-23 11:33:45 +00:00
E0388.stderr Adjust wording of a diagnostic 2021-01-23 11:33:45 +00:00
E0389.rs Improve error reporting for modifications behind & references 2021-07-02 18:29:49 +02:00
E0389.stderr Improve error reporting for modifications behind & references 2021-07-02 18:29:49 +02:00
E0390.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0390.stderr fix behavior for empty impls 2022-03-30 11:23:58 +02:00
E0392.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0392.stderr Add help message for unused type param 2021-05-01 21:58:06 +00:00
E0393.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0393.stderr Tweak errors for missing associated types and type parameters 2019-12-24 22:02:43 -08:00
E0395.rs Refer just to the issue in the raw ptr cmp diagnostic instead of explaining everything in the diagnostic 2020-06-20 14:09:07 +02:00
E0395.stderr Practice diagnostic message convention 2021-10-03 16:16:28 +09:00
E0396-fixed.rs Stabilize const_raw_ptr_deref for *const T 2021-11-06 17:05:15 -04:00
E0396-fixed.stderr interpret/memory: simplify check_and_deref_ptr 2022-03-22 20:19:30 -04:00
E0396.rs Stabilize const_raw_ptr_deref for *const T 2021-11-06 17:05:15 -04:00
E0396.stderr Stabilize const_raw_ptr_deref for *const T 2021-11-06 17:05:15 -04:00
E0401.rs Remove blanket silencing of "type annotation needed" errors 2019-09-24 11:31:14 -07:00
E0401.stderr Indicate origin of where type parameter for uninferred types 2019-12-14 11:10:21 +01:00
E0403.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0403.stderr Move type parameter shadowing errors to resolve 2019-08-17 09:12:32 +01:00
E0404.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0404.stderr Update tests 2019-03-11 23:10:26 +03:00
E0405.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0405.stderr Update tests 2019-03-11 23:10:26 +03:00
E0407.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0407.stderr Suggest similarly named assoc items in trait impls 2021-09-29 00:22:32 +09:00
E0408.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0408.stderr Update tests 2019-03-11 23:10:26 +03:00
E0411.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0411.stderr Update tests 2019-03-11 23:10:26 +03:00
E0412.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0412.stderr Update tests 2019-03-11 23:10:26 +03:00
E0415.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0415.stderr Update tests 2019-03-11 23:10:26 +03:00
E0416.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0416.stderr Update tests 2019-03-11 23:10:26 +03:00
E0423.rs Emit specific error for struct literal in conditions 2019-04-19 10:13:44 -07:00
E0423.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0424.rs Suggest correct place to add self parameter when inside closure 2020-10-17 13:36:59 +02:00
E0424.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0425.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0425.stderr Update tests 2019-03-11 23:10:26 +03:00
E0426.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0426.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0428.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0428.stderr Update tests 2019-03-11 23:10:26 +03:00
E0429.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0429.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0430.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0430.stderr hide --explain hint if error has no extended info 2019-04-18 13:29:28 -04:00
E0431.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0431.stderr Update tests 2019-03-11 23:10:26 +03:00
E0432.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0432.stderr Don't recommend extern crate syntax 2019-08-05 18:19:01 +01:00
E0433.rs Improve E0433, so that it suggests missing imports 2020-06-02 20:41:25 +02:00
E0433.stderr Clarify message about unresolved use 2020-09-01 18:38:14 +01:00
E0434.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0434.stderr Update tests 2019-03-11 23:10:26 +03:00
E0435.fixed Use correct span for structured suggestion 2021-01-07 16:52:44 -08:00
E0435.rs Use correct span for structured suggestion 2021-01-07 16:52:44 -08:00
E0435.stderr Use correct span for structured suggestion 2021-01-07 16:52:44 -08:00
E0437.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0437.stderr Update tests 2019-03-11 23:10:26 +03:00
E0438.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0438.stderr Update tests 2019-03-11 23:10:26 +03:00
E0445.rs privacy: Use common DefId visiting infra for all privacy visitors 2019-01-01 01:39:55 +03:00
E0445.stderr Calculate visibilities once in resolve 2020-10-19 11:57:50 +03:00
E0446.rs Move privacy checking later in the pipeline and make some passes run in parallel 2019-01-30 21:19:02 +01:00
E0446.stderr Calculate visibilities once in resolve 2020-10-19 11:57:50 +03:00
E0449.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0449.stderr Update tests 2019-03-11 23:10:26 +03:00
E0451.rs Move privacy checking later in the pipeline and make some passes run in parallel 2019-01-30 21:19:02 +01:00
E0451.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
E0452.rs Don't pass -Z unstable-options by default for UI tests 2021-06-06 00:44:54 -04:00
E0452.stderr Don't pass -Z unstable-options by default for UI tests 2021-06-06 00:44:54 -04:00
E0453.rs Don't pass -Z unstable-options by default for UI tests 2021-06-06 00:44:54 -04:00
E0453.stderr Don't pass -Z unstable-options by default for UI tests 2021-06-06 00:44:54 -04:00
E0454.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0454.stderr Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0458.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0458.stderr Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0459.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0459.stderr Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0463.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0463.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0464.rs Work around different filenames for DLLs 2021-10-12 13:31:21 -07:00
E0464.stderr Add long explanation for E0464 2021-10-12 13:10:12 -07:00
E0478.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0478.stderr Remove textual span from diagnostic string 2021-10-13 10:53:44 +00:00
E0490.nll.stderr Update tests 2020-05-22 18:03:08 +01:00
E0490.rs Update tests 2020-05-22 18:03:08 +01:00
E0490.stderr Remove textual span from diagnostic string 2021-10-13 10:53:44 +00:00
E0492.rs Reinstate the error-code error over the feature gate error 2021-01-01 16:59:12 +00:00
E0492.stderr Stylistic fixes to diagnostic messages 2021-01-03 15:11:34 +00:00
E0496.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0496.stderr Tweak diagnostics on shadowing lifetimes/labels 2020-12-02 11:39:42 +09:00
E0499.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0499.stderr Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
E0501.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0501.stderr Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0502.nll.stderr Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
E0502.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0502.stderr Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
E0503.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0503.stderr Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
E0504.rs update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
E0504.stderr Closure capture borrow diagnostics for disjoint captures 2021-05-01 19:01:05 -04:00
E0505.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0505.stderr Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
E0506.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0506.stderr Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0507.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0507.stderr Tweak move error 2022-03-03 21:21:57 +00:00
E0508-fail.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0508-fail.stderr Update tests for changes to cannot move errors 2019-06-03 14:55:29 +01:00
E0508.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0508.stderr Update tests for changes to cannot move errors 2019-06-03 14:55:29 +01:00
E0509.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0509.stderr Update tests for changes to cannot move errors 2019-06-03 14:55:29 +01:00
E0511.rs rework run-fail and support check,build-fail 2019-12-21 22:16:00 +01:00
E0511.stderr rework run-fail and support check,build-fail 2019-12-21 22:16:00 +01:00
E0512.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0512.stderr Update tests 2019-03-11 23:10:26 +03:00
E0516.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0516.stderr --bless tests 2022-04-10 16:45:09 +04:00
E0517.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0517.stderr passes: check_attr on more targets 2020-09-28 12:18:52 +01:00
E0518.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0518.stderr Update tests 2019-03-11 23:10:26 +03:00
E0520.rs bless all 2020-06-16 11:56:54 +02:00
E0520.stderr Suggest minimal subset features in incomplete_features lint 2020-10-17 02:01:08 +09:00
E0522.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0522.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0527.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0527.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0528.rs slice_patterns: remove gates in tests 2020-01-18 19:33:47 +01:00
E0528.stderr slice_patterns: remove gates in tests 2020-01-18 19:33:47 +01:00
E0529.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0529.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0530.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0530.stderr Update tests 2019-03-11 23:10:26 +03:00
E0532.rs Point at local similarly named element and tweak references to variants 2019-10-27 11:50:43 -07:00
E0532.stderr Point at local similarly named element and tweak references to variants 2019-10-27 11:50:43 -07:00
E0534.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0534.stderr Update tests 2019-03-11 23:10:26 +03:00
E0559.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0559.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0560.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0560.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0565-1.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0565-1.stderr Update tests 2019-03-11 23:10:26 +03:00
E0565-2.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0565-2.stderr Update tests 2019-03-11 23:10:26 +03:00
E0565.rs Allow specifying alignment for functions 2021-04-05 17:36:51 -04:00
E0565.stderr Allow specifying alignment for functions 2021-04-05 17:36:51 -04:00
E0572.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0572.stderr Update tests 2019-03-11 23:10:26 +03:00
E0582.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0582.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0583.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0583.stderr E0583: Include secondary path in error message 2021-05-06 09:40:05 +08:00
E0585.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0585.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0586.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0586.stderr Ban ...X pats, harden tests, and improve diagnostics. 2020-01-11 08:58:58 +01:00
E0594.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0594.stderr Update ui tests 2019-11-18 19:00:10 +01:00
E0596.rs Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0596.stderr Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
E0597.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0597.stderr update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
E0599.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0599.stderr Unify output of "variant not found" errors 2020-01-08 08:05:31 -08:00
E0600.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0600.stderr Update tests 2019-03-11 23:10:26 +03:00
E0601.rs Provide a span if main function is not present in crate 2019-09-14 11:27:45 -04:00
E0601.stderr Provide a span if main function is not present in crate 2019-09-14 11:27:45 -04:00
E0602.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0602.stderr Don't pass -Z unstable-options by default for UI tests 2021-06-06 00:44:54 -04:00
E0603.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0603.stderr Normalize wording of privacy access labels 2020-03-22 15:36:54 -07:00
E0604.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0604.stderr #91939: integer to char cast error, make more targeted 2022-01-25 23:46:56 +00:00
E0605.rs Make use of ptr::null(_mut) instead of casting zero 2019-06-17 10:52:46 +00:00
E0605.stderr Fix suggestion to borrow when casting from pointer to reference 2021-10-04 21:15:02 +02:00
E0606.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0606.stderr Update tests 2019-03-11 23:10:26 +03:00
E0607.rs Make use of ptr::null(_mut) instead of casting zero 2019-06-17 10:52:46 +00:00
E0607.stderr Update tests 2019-03-11 23:10:26 +03:00
E0608.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0608.stderr Update tests 2019-03-11 23:10:26 +03:00
E0609.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0609.stderr Update tests 2019-03-11 23:10:26 +03:00
E0610.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0610.stderr Update tests 2019-03-11 23:10:26 +03:00
E0614.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0614.stderr Update tests 2019-03-11 23:10:26 +03:00
E0615.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0615.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0616.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0616.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
E0617.rs Update tests for extern block linting 2021-01-13 07:49:16 -05:00
E0617.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0618.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0618.stderr Suggest removal of arguments for unit variant, not replacement 2021-11-16 20:40:35 +00:00
E0620.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0620.stderr Update tests 2019-03-11 23:10:26 +03:00
E0621-does-not-trigger-for-closures.rs Update tests 2020-05-22 18:03:08 +01:00
E0621-does-not-trigger-for-closures.stderr Update tests 2020-05-22 18:03:08 +01:00
E0622.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0622.stderr Remove licenses 2018-12-25 21:08:33 -07:00
E0624.rs update tests 2020-03-12 15:47:36 -05:00
E0624.stderr Various diagnostics clean ups/tweaks 2021-07-19 08:43:35 -07:00
E0637.rs Update E0637 description to mention & w/o an explicit lifetime name 2021-10-16 02:49:58 +09:00
E0637.stderr Update E0637 description to mention & w/o an explicit lifetime name 2021-10-16 02:49:58 +09:00
E0642.fixed Audit uses of span_suggestion_short 2020-07-02 15:18:33 +09:00
E0642.rs Audit uses of span_suggestion_short 2020-07-02 15:18:33 +09:00
E0642.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0646.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0646.stderr Remove the HirId/NodeId from where clauses 2019-06-18 22:54:51 +01:00
E0647.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0647.stderr Remove the HirId/NodeId from where clauses 2019-06-18 22:54:51 +01:00
E0648.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0648.stderr compiletest: make path normalization smarter 2019-03-25 01:06:45 -04:00
E0657.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0657.stderr Add proper explanation of error code E0657 2020-04-13 13:36:22 +05:30
E0658.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0658.stderr --bless --compare-mode=nll 2020-02-09 20:43:49 +01:00
E0659.rs Remove licenses 2018-12-25 21:08:33 -07:00
E0659.stderr Edit error messages for rustc_resolve::AmbiguityKind variants 2021-10-25 20:33:07 -05:00
E0705.rs Moving more build-pass tests to check-pass 2020-04-23 20:21:38 -07:00
E0705.stderr rustc: Add a warning count upon completion 2020-04-11 16:15:24 +02:00
E0718.rs Replace "rc"/"arc" lang items with Rc/Arc diagnostic items. 2020-04-08 10:47:41 +03:00
E0718.stderr Replace "rc"/"arc" lang items with Rc/Arc diagnostic items. 2020-04-08 10:47:41 +03:00
E0719.rs Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
E0719.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
E0730.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
E0730.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
E0746.fixed Make impl Trait suggestion in E0746 MachineApplicable 2020-01-16 09:37:24 -08:00
E0746.rs Make impl Trait suggestion in E0746 MachineApplicable 2020-01-16 09:37:24 -08:00
E0746.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
E0767.rs resolve: disallow label use through closure/async 2020-07-02 13:48:32 +01:00
E0767.stderr resolve: disallow label use through closure/async 2020-07-02 13:48:32 +01:00
E0771.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
E0771.stderr move adt_const_params to its own tracking issue 2022-03-21 16:33:42 +01:00
E0777.rs Improve E0777 help message 2020-10-02 16:33:44 +02:00
E0777.stderr Various diagnostics clean ups/tweaks 2021-07-19 08:43:35 -07:00
E0778.rs Implement the instruction_set attribute 2020-10-08 23:32:20 +01:00
E0778.stderr Implement the instruction_set attribute 2020-10-08 23:32:20 +01:00
E0779.rs Implement the instruction_set attribute 2020-10-08 23:32:20 +01:00
E0779.stderr Fix typo in error code 2020-10-08 23:56:59 +01:00
ex-E0611.rs pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
ex-E0611.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
ex-E0612.rs Remove licenses 2018-12-25 21:08:33 -07:00
ex-E0612.stderr Update tests 2019-03-11 23:10:26 +03:00