Skip to content

Commit 933bade

Browse files
committed
Fix tests crashing under stricter pattern binding rules
Before this commit, the tests listed below would crash when the stricter pattern binding rules were enforced (whether using `-source future` or now enabled by default) - neg/parser-stability-14.scala - neg/i4453.scala - fuzzy/CCE-aafcaa9cd2611d22f63273738d637f5bec6e7152.scala - fuzzy/comment3.scala with a common stack trace: dotty.tools.dotc.core.Types$PreviousErrorType cannot be cast to dotty.tools.dotc.core.Types$TermRef dotty.tools.dotc.transform.patmat.SpaceEngine$.isIrrefutable(Space.scala:316) dotty.tools.dotc.typer.Checking.recur$1(Checking.scala:828) dotty.tools.dotc.typer.Checking.checkIrrefutable(Checking.scala:843) dotty.tools.dotc.typer.Checking.checkIrrefutable$(Checking.scala:775) dotty.tools.dotc.typer.Typer.checkIrrefutable(Typer.scala:119) ...
1 parent a2c2458 commit 933bade

File tree

1 file changed

+5
-2
lines changed
  • compiler/src/dotty/tools/dotc/transform/patmat

1 file changed

+5
-2
lines changed

compiler/src/dotty/tools/dotc/transform/patmat/Space.scala

+5-2
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,11 @@ object SpaceEngine {
312312
*/
313313
def isIrrefutable(unapp: tpd.Tree, argLen: Int)(using Context): Boolean = {
314314
val fun1 = tpd.funPart(unapp)
315-
val funRef = fun1.tpe.asInstanceOf[TermRef]
316-
isIrrefutable(funRef, argLen)
315+
fun1.tpe match
316+
case funRef: TermRef =>
317+
isIrrefutable(funRef, argLen)
318+
case _ =>
319+
false
317320
}
318321
}
319322

0 commit comments

Comments
 (0)