rust/src/test/ui/pattern
bors 6df1d82869 Auto merge of #88950 - Nadrieril:deconstruct-pat, r=oli-obk
Add an intermediate representation to exhaustiveness checking

The exhaustiveness checking algorithm keeps deconstructing patterns into a `Constructor` and some `Fields`, but does so a bit all over the place. This PR introduces a new representation for patterns that already has that information, so we only compute it once at the start.
I find this makes code easier to follow. In particular `DeconstructedPat::specialize` is a lot simpler than what happened before, and more closely matches the description of the algorithm. I'm also hoping this could help for the project of librarifying exhaustiveness for rust_analyzer since it decouples the algorithm from `rustc_middle::Pat`.
2021-09-29 00:16:17 +00:00
..
auxiliary Add cross-crate tuple field count error test 2021-08-21 16:15:09 -07:00
bindings-after-at Modify structured suggestion output 2021-08-11 09:46:24 +00:00
move-ref-patterns Auto merge of #85305 - MarcusDunn:master, r=pnkfelix 2021-07-27 05:53:31 +00:00
usefulness Auto merge of #88950 - Nadrieril:deconstruct-pat, r=oli-obk 2021-09-29 00:16:17 +00:00
integer-range-binding.rs Improve integer range tests 2020-11-21 01:38:42 +00:00
issue-6449.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-10392.rs Move some tests to more reasonable directories - 5 2021-03-20 11:41:24 -03:00
issue-12582.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-14221.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-14221.stderr Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-22546.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-66270-pat-struct-parser-recovery.rs
issue-66270-pat-struct-parser-recovery.stderr
issue-67037-pat-tup-scrut-ty-diff-less-fields.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00
issue-67037-pat-tup-scrut-ty-diff-less-fields.stderr Adjust spans 2021-08-25 14:40:06 -07:00
issue-67776-match-same-name-enum-variant-refs.rs
issue-67776-match-same-name-enum-variant-refs.stderr
issue-68393-let-pat-assoc-constant.rs
issue-68393-let-pat-assoc-constant.stderr
issue-72565.rs Add a regression test for issue-72565 2020-10-01 14:10:33 +09:00
issue-72565.stderr Add a regression test for issue-72565 2020-10-01 14:10:33 +09:00
issue-74539.rs
issue-74539.stderr Adjust spans 2021-08-25 14:40:06 -07:00
issue-74702.rs
issue-74702.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
issue-74954.rs
issue-80186-mut-binding-help-suggestion.rs Fix pretty printing an AST representing &(mut ident) 2020-12-20 13:11:07 +01:00
issue-80186-mut-binding-help-suggestion.stderr Fix pretty printing an AST representing &(mut ident) 2020-12-20 13:11:07 +01:00
issue-82290.rs Introduce hir::ExprKind::Let - Take 2 2021-08-15 16:18:26 -03:00
issue-82290.stderr Introduce hir::ExprKind::Let - Take 2 2021-08-15 16:18:26 -03:00
non-constant-in-const-path.rs Refactor PatternError structure 2021-06-19 11:47:15 +09:00
non-constant-in-const-path.stderr Refactor PatternError structure 2021-06-19 11:47:15 +09:00
pat-shadow-in-nested-binding.rs
pat-shadow-in-nested-binding.stderr
pat-struct-field-expr-has-type.rs
pat-struct-field-expr-has-type.stderr path trimming: ignore type aliases 2021-02-06 12:03:48 +02:00
pat-tuple-bad-type.rs
pat-tuple-bad-type.stderr
pat-tuple-field-count-cross.rs Add cross-crate tuple field count error test 2021-08-21 16:15:09 -07:00
pat-tuple-field-count-cross.stderr Adjust spans 2021-08-25 14:40:06 -07:00
pat-tuple-overfield.rs Adjust spans 2021-08-25 14:40:06 -07:00
pat-tuple-overfield.stderr Adjust spans 2021-08-25 14:40:06 -07:00
pat-tuple-underfield.rs Adjust spans 2021-08-25 14:40:06 -07:00
pat-tuple-underfield.stderr Adjust spans 2021-08-25 14:40:06 -07:00
pat-type-err-formal-param.rs
pat-type-err-formal-param.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
pat-type-err-let-stmt.rs
pat-type-err-let-stmt.stderr path trimming: ignore type aliases 2021-02-06 12:03:48 +02:00
patkind-litrange-no-expr.rs char not char 2020-09-26 13:34:49 +01:00
patkind-litrange-no-expr.stderr char not char 2020-09-26 13:34:49 +01:00
pattern-binding-disambiguation.rs
pattern-binding-disambiguation.stderr
pattern-error-continue.rs
pattern-error-continue.stderr Adjust spans 2021-08-25 14:40:06 -07:00
pattern-ident-path-generics.rs
pattern-ident-path-generics.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
pattern-tyvar-2.rs Improve wording of "cannot multiply" type error 2020-10-17 22:19:25 -07:00
pattern-tyvar-2.stderr Improve wording of "cannot multiply" type error 2020-10-17 22:19:25 -07:00
pattern-tyvar.rs
pattern-tyvar.stderr pretty: trim paths of unique symbols 2020-09-02 22:26:37 +03:00
rest-pat-semantic-disallowed.rs
rest-pat-semantic-disallowed.stderr Show macro name in 'this error originates in macro' message 2021-05-12 19:03:06 -04:00
rest-pat-syntactic.rs
size-and-align.rs Move some tests to more reasonable directories - 2 2021-01-16 19:46:54 -03:00