about summary refs log tree commit diff
path: root/src/test/ui/or-patterns
AgeCommit message (Collapse)AuthorLines
2023-01-11Move /src/test to /testsAlbert Larsan-2978/+0
2022-12-13Inform the user which trait is meant in the diagnostic itself instead of ↵Oli Scherer-1/+1
relying on the span making it obvious
2022-12-13Make some diagnostics not depend on the source of what they reference being ↵Oli Scherer-3/+0
available
2022-11-21Revert formatting changes of a testMaybe Waffle-5/+5
2022-11-14Show a note where a macro failed to matchNilstrieb-0/+12
This shows a small note on what the macro matcher was currently processing to aid with "no rules expected the token X" errors.
2022-08-22Rollup merge of #98200 - ouz-a:issue-98177, r=oli-obkDylan DPC-0/+95
Expand potential inner `Or` pattern for THIR Code assumed there wouldn't be a deeper `Or` pattern inside expanded `PatStack` this fixes it by looking for the `Or` pattern inside expanded `PatStack`. A more ideal solution would be recursively doing this but I haven't found a good way to do that. _fixes #97898_
2022-08-17Reenable early feature-gates as future-compat warningsChristopher Durham-7/+22
2022-08-17add new test and combine old onesouz-a-47/+65
2022-07-01Shorten def_span for more items.Camille GILLOT-8/+2
2022-06-17expand inner `or` patternouz-a-0/+77
2022-05-06Resolve vars in note_type_errJack Huey-5/+5
2022-04-30When encountering a binding that could be a const or unit variant, suggest ↵Esteban Kuber-16/+16
the right path
2022-03-27Point (again) to more expressions with their type, even if not fully resolvedEsteban Kuber-4/+6
2022-03-08Do not suggest `let_else` if no bindings would be introducedEsteban Kuber-4/+0
2022-03-08Suggest `if let`/`let_else` for refutable pat in `let`Esteban Kuber-3/+7
2022-03-08Change wording of suggestion to add missing `match` armEsteban Kuber-4/+4
2022-03-08When finding a match expr with a single arm that requires more, suggest itEsteban Kuber-4/+20
Given ```rust match Some(42) { Some(0) => {} } ``` suggest ```rust match Some(42) { Some(0) => {} None | Some(_) => todo!(), } ```
2022-03-08When encountering a match expr with no arms, suggest itEsteban Kuber-4/+4
Given ```rust match Some(42) {} ``` suggest ```rust match Some(42) { None | Some(_) => todo!(), } ```
2022-03-03Cleanup feature gates.Camille GILLOT-16/+12
2021-12-14Make TyS::is_suggestable more structualMichael Goulet-6/+4
2021-10-05Consider unfulfilled obligations in binop errorsEsteban Kuber-1/+16
When encountering a binop where the types would have been accepted, if all the predicates had been fulfilled, include information about the predicates and suggest appropriate `#[derive]`s if possible. Point at trait(s) that needs to be `impl`emented.
2021-08-11Modify structured suggestion outputEsteban Küber-1/+1
* On suggestions that include deletions, use a diff inspired output format * When suggesting addition, use `+` as underline * Color highlight modified span
2021-05-12Show macro name in 'this error originates in macro' messageAaron Hill-1/+1
When there are multiple macros in use, it can be difficult to tell which one was responsible for producing an error.
2021-04-28fix testmark-0/+1
2021-04-27unignore a couple of testsmark-4/+0
2021-03-19update testsmark-479/+136
2021-03-05use pat<no_top_alt> for patterns in let bindingsmark-275/+457
2021-02-15Simplify pattern grammar by allowing nested leading vertmark-211/+73
Along the way, we also implement a handful of diagnostics improvements and fixes, particularly with respect to the special handling of `||` in place of `|` and when there are leading verts in function params, which don't allow top-level or-patterns anyway.
2021-02-07Auto merge of #80632 - Nadrieril:fix-80501, r=varkorbors-12/+67
Identify unreachable subpatterns more reliably In https://github.com/rust-lang/rust/pull/80104 I used `Span`s to identify unreachable sub-patterns in the presence of or-patterns during exhaustiveness checking. In https://github.com/rust-lang/rust/issues/80501 it was revealed that `Span`s are complicated and that this was not a good idea. Instead, this PR identifies subpatterns logically: as a path in the tree of subpatterns of a given pattern. I made a struct that captures a set of such subpatterns. This is a bit complex, but thankfully self-contained; the rest of the code does not need to know anything about it. Fixes https://github.com/rust-lang/rust/issues/80501. I think I managed to keep the perf neutral. r? `@varkor`
2021-02-06path trimming: ignore type aliasesDan Aloni-1/+1
2021-02-03move test to be with the othersmark-0/+44
2021-01-24Identify subpatterns by the path to them instead of spansNadrieril-3/+14
2021-01-24Factor or-pattern expansionNadrieril-13/+22
2021-01-24Add testsNadrieril-10/+45
2020-12-20Auto merge of #80100 - mark-i-m:pattORns-2, r=petrochenkovbors-43/+64
or_patterns: implement :pat edition-specific behavior cc #54883 `@joshtriplett` This PR implements the edition-specific behavior of `:pat` wrt or-patterns, as determined by the crater runs and T-lang consensus in https://github.com/rust-lang/rust/issues/54883#issuecomment-745509090. I believe this can unblock stabilization of or_patterns. r? `@petrochenkov`
2020-12-19implement edition-specific :pat behavior for 2015/18mark-43/+64
2020-12-18Merge unreachable subpatterns correctlyNadrieril-16/+8
2020-12-18Rewrite usefulness merging using `SpanSet`Nadrieril-2/+8
`SpanSet` is heavily inspired from `DefIdForest`.
2020-12-18Add testsNadrieril-5/+48
2020-11-05Emit lints in the order in which they occur in the file.Nadrieril-4/+4
2020-11-05Fix unreachable sub-branch detectionNadrieril-6/+12
This fixes https://github.com/rust-lang/rust/issues/76836
2020-11-05Add testNadrieril-4/+11
2020-09-02pretty: trim paths of unique symbolsDan Aloni-15/+15
If a symbol name can only be imported from one place for a type, and as long as it was not glob-imported anywhere in the current crate, we can trim its printed path and print only the name. This has wide implications on error messages with types, for example, shortening `std::vec::Vec` to just `Vec`, as long as there is no other `Vec` importable anywhere. This adds a new '-Z trim-diagnostic-paths=false' option to control this feature. On the good path, with no diagnosis printed, we should try to avoid issuing this query, so we need to prevent trimmed_def_paths query on several cases. This change also relies on a previous commit that differentiates between `Debug` and `Display` on various rustc types, where the latter is trimmed and presented to the user and the former is not.
2020-07-04Fix #71977Nadrieril-12/+51
2020-06-28Update testsDylan MacKenzie-63/+1
2020-06-26Show the values and computation that would overflow a const evaluation or ↵Oliver Scherer-13/+13
propagation
2020-06-13Prefer the associated consts for pattern matching errorLzu Tao-13/+13
2020-06-04resolve: Sort E0408 errors by Symbol strTom Eccles-13/+13
Previously errors were sorted by Symbol index instead of the string. The indexes are not the same between architectures because Symbols for architecture extensions (e.g. x86 AVX or RISC-V d) are interned before the source file is parsed. RISC-V's naming of extensions after single letters led to it having errors sorted differently for test cases using single letter variable names. Instead sort the errors by the Symbol string so that it is stable across architectures.
2020-05-10Auto merge of #71557 - matthewjasper:mir-asymmetric-or-pattern, r=oli-obkbors-0/+51
Fix ICE for broken or-pattern in async fn closes #71297
2020-04-29Bless testsDylan MacKenzie-17/+2