about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/lints.rs
diff options
context:
space:
mode:
authorNadrieril <nadrieril+git@gmail.com>2024-01-06 17:58:57 +0100
committerNadrieril <nadrieril+git@gmail.com>2024-01-06 18:03:13 +0100
commit50b197c6ee0c42df56020bd4c5d8e393411fb8c0 (patch)
tree6a22a1a7b1e9f73b42285bd1ab85bc68d2ca0901 /compiler/rustc_pattern_analysis/src/lints.rs
parentd40f1b1172b646d12a340a5b913a363678bc4cd6 (diff)
downloadrust-50b197c6ee0c42df56020bd4c5d8e393411fb8c0.tar.gz
rust-50b197c6ee0c42df56020bd4c5d8e393411fb8c0.zip
Reuse `ctor_sub_tys` when we have one around
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/lints.rs')
-rw-r--r--compiler/rustc_pattern_analysis/src/lints.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_pattern_analysis/src/lints.rs b/compiler/rustc_pattern_analysis/src/lints.rs
index 83210a4a556..f1237ecf83c 100644
--- a/compiler/rustc_pattern_analysis/src/lints.rs
+++ b/compiler/rustc_pattern_analysis/src/lints.rs
@@ -83,8 +83,9 @@ impl<'p, 'tcx> PatternColumn<'p, 'tcx> {
             (0..arity).map(|_| Self { patterns: Vec::new() }).collect();
         let relevant_patterns =
             self.patterns.iter().filter(|pat| ctor.is_covered_by(pcx, pat.ctor()));
+        let ctor_sub_tys = pcx.ctor_sub_tys(ctor);
         for pat in relevant_patterns {
-            let specialized = pat.specialize(pcx, ctor);
+            let specialized = pat.specialize(pcx, ctor, ctor_sub_tys);
             for (subpat, column) in specialized.iter().zip(&mut specialized_columns) {
                 if subpat.is_or_pat() {
                     column.patterns.extend(subpat.flatten_or_pat())