Skip to content

Commit a7ee8ba

Browse files
authored
Merge pull request #3488 from ahoppen/SR-2057-match-opt-enum
[Sema] Fix compiler crash when pattern matching optional enum
2 parents bd20e82 + a97585c commit a7ee8ba

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/Sema/TypeCheckPattern.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1458,8 +1458,8 @@ bool TypeChecker::coercePatternToType(Pattern *&P, DeclContext *dc, Type type,
14581458
/*special kind*/0, Rename.str())
14591459
.fixItReplace(EEP->getLoc(), Rename.str());
14601460

1461+
return true;
14611462
}
1462-
return true;
14631463
}
14641464

14651465
diagnose(EEP->getLoc(), diag::enum_element_pattern_member_not_found,

test/Constraints/patterns.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,13 @@ func ugly(_ a: A<EE>) {
222222
}
223223
}
224224
}
225+
226+
// SR-2057
227+
228+
enum SR2057 {
229+
case foo
230+
}
231+
232+
let sr2057: SR2057? = nil
233+
if case .foo = sr2057 { } // expected-error{{enum case 'foo' not found in type 'SR2057?'}}
234+

0 commit comments

Comments
 (0)