Skip to content

Commit c8be7f8

Browse files
authored
Don't leave underspecified SAM types in the code (#19461)
Fixes #15785
2 parents 2945fd1 + c8f3a6f commit c8be7f8

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1738,8 +1738,7 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
17381738
// Replace the underspecified expected type by one based on the closure method type
17391739
defn.PartialFunctionOf(mt.firstParamTypes.head, mt.resultType)
17401740
else
1741-
report.error(em"result type of lambda is an underspecified SAM type $samParent", tree.srcPos)
1742-
samParent
1741+
errorType(em"result type of lambda is an underspecified SAM type $samParent", tree.srcPos)
17431742
TypeTree(targetTpe)
17441743
case _ =>
17451744
if (mt.isParamDependent)

tests/neg/i15785.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
trait SAMFunction1[-T1, +R]:
2+
def apply(x1: T1): R
3+
4+
def fooSAM[T](foo: SAMFunction1[T, T] = (f: T) => f): Unit = () // error

0 commit comments

Comments
 (0)