Skip to content

Commit 614da6b

Browse files
committed
Fix crashing tests
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 d1fa044 commit 614da6b

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

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

0 commit comments

Comments
 (0)