File tree 2 files changed +1007
-4
lines changed
compiler/src/dotty/tools/dotc/transform/patmat 2 files changed +1007
-4
lines changed Original file line number Diff line number Diff line change @@ -870,18 +870,19 @@ class SpaceEngine(using Context) extends SpaceLogic {
870
870
project(OrType (selTyp, constantNullType, soft = false ))
871
871
872
872
// in redundancy check, take guard as false in order to soundly approximate
873
- def projectPrevCases (cases : List [CaseDef ]): Space =
873
+ def projectPrevCases (cases : List [CaseDef ]): List [ Space ] =
874
874
cases.map { x =>
875
875
if (x.guard.isEmpty) project(x.pat)
876
876
else Empty
877
- }.reduce((a, b) => Or ( List (a, b)))
877
+ }
878
878
879
- (1 until cases.length).foreach { i =>
880
- val prevs = projectPrevCases(cases.take(i))
879
+ val spaces = projectPrevCases(cases)
881
880
881
+ (1 until cases.length).foreach { i =>
882
882
val pat = cases(i).pat
883
883
884
884
if (pat != EmptyTree ) { // rethrow case of catch uses EmptyTree
885
+ val prevs = Or (spaces.take(i))
885
886
val curr = project(pat)
886
887
887
888
debug.println(s " ---------------reachable? ${show(curr)}" )
You can’t perform that action at this time.
0 commit comments