@@ -876,7 +876,7 @@ object SpaceEngine {
876
876
case _ => tp
877
877
})
878
878
879
- def checkExhaustivity (m : Match )(using Context ): Unit = if exhaustivityCheckable(m.selector) then trace(i " checkExhaustivity( $m) " , debug) {
879
+ def checkExhaustivity (m : Match )(using Context ): Unit = trace(i " checkExhaustivity( $m) " , debug) {
880
880
val selTyp = toUnderlying(m.selector.tpe).dealias
881
881
debug.println(i " selTyp = $selTyp" )
882
882
@@ -899,7 +899,7 @@ object SpaceEngine {
899
899
report.warning(PatternMatchExhaustivity (showSpaces(deduped), m), m.selector)
900
900
}
901
901
902
- private def redundancyCheckable (sel : Tree )(using Context ): Boolean =
902
+ private def reachabilityCheckable (sel : Tree )(using Context ): Boolean =
903
903
// Ignore Expr[T] and Type[T] for unreachability as a special case.
904
904
// Quote patterns produce repeated calls to the same unapply method, but with different implicit parameters.
905
905
// Since we assume that repeated calls to the same unapply method overlap
@@ -909,7 +909,7 @@ object SpaceEngine {
909
909
&& ! sel.tpe.widen.isRef(defn.QuotedExprClass )
910
910
&& ! sel.tpe.widen.isRef(defn.QuotedTypeClass )
911
911
912
- def checkRedundancy (m : Match )(using Context ): Unit = if redundancyCheckable(m.selector) then trace(i " checkRedundancy ( $m) " , debug) {
912
+ def checkReachability (m : Match )(using Context ): Unit = trace(i " checkReachability ( $m) " , debug) {
913
913
val cases = m.cases.toIndexedSeq
914
914
915
915
val selTyp = toUnderlying(m.selector.tpe).dealias
@@ -961,4 +961,10 @@ object SpaceEngine {
961
961
i += 1
962
962
}
963
963
}
964
+
965
+ def checkMatch (m : Match )(using Context ): Unit =
966
+ if exhaustivityCheckable(m.selector) then
967
+ checkExhaustivity(m)
968
+ if reachabilityCheckable(m.selector) then
969
+ checkReachability(m)
964
970
}
0 commit comments