diff --git a/compiler/src/dotty/tools/dotc/typer/Typer.scala b/compiler/src/dotty/tools/dotc/typer/Typer.scala index 5463386fa771..76f0e8a3ecf6 100644 --- a/compiler/src/dotty/tools/dotc/typer/Typer.scala +++ b/compiler/src/dotty/tools/dotc/typer/Typer.scala @@ -1998,8 +1998,6 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer // Polymorphic SAMs are not currently supported (#6904). EmptyTree case tp => - if !tp.isErroneous then - throw new java.lang.Error(i"internal error: closing over non-method $tp, pos = ${tree.span}") TypeTree(defn.AnyType) } else typed(tree.tpt) diff --git a/tests/neg/i20511-1.check b/tests/neg/i20511-1.check new file mode 100644 index 000000000000..3f64940bb4fe --- /dev/null +++ b/tests/neg/i20511-1.check @@ -0,0 +1,32 @@ +-- [E083] Type Error: tests/neg/i20511-1.scala:7:7 --------------------------------------------------------------------- +7 |export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error + | ^^^^^^^^^^^^ + | Int => Double is not a valid export prefix, since it is not an immutable path + | + | longer explanation available when compiling with `-explain` +-- [E083] Type Error: tests/neg/i20511-1.scala:7:27 -------------------------------------------------------------------- +7 |export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error + | ^^^^^^^^^^ + | Any is not a valid export prefix, since it is not an immutable path + | + | longer explanation available when compiling with `-explain` +-- Error: tests/neg/i20511-1.scala:7:38 -------------------------------------------------------------------------------- +7 |export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error + | ^^^^^ + | no eligible member apply at { + | def $anonfun(crustType: Double): Double = pakiet.crustPrice(crustType) + | closure(pakiet.$anonfun:Any) + | } +-- [E083] Type Error: tests/neg/i20511-1.scala:7:45 -------------------------------------------------------------------- +7 |export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error + | ^^^^^^^^^^ + | Any is not a valid export prefix, since it is not an immutable path + | + | longer explanation available when compiling with `-explain` +-- Error: tests/neg/i20511-1.scala:7:56 -------------------------------------------------------------------------------- +7 |export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error + | ^^^^^^ + | no eligible member unlift at { + | def $anonfun(crustType: Double): Double = pakiet.crustPrice(crustType) + | closure(pakiet.$anonfun:Any) + | } diff --git a/tests/neg/i20511-1.scala b/tests/neg/i20511-1.scala new file mode 100644 index 000000000000..882520b55c07 --- /dev/null +++ b/tests/neg/i20511-1.scala @@ -0,0 +1,7 @@ +package pakiet + +def toppingPrice(size: Int): Double = ??? + +def crustPrice(crustType: Double): Double = ??? + +export toppingPrice.apply, crustPrice.apply, crustPrice.unlift // error // error // error // error // error diff --git a/tests/neg/i20511.check b/tests/neg/i20511.check new file mode 100644 index 000000000000..fefff9f42a6f --- /dev/null +++ b/tests/neg/i20511.check @@ -0,0 +1,14 @@ +-- [E040] Syntax Error: tests/neg/i20511.scala:7:19 -------------------------------------------------------------------- +7 |export toppingPrice, crustPrice // error // error + | ^ + | '.' expected, but ',' found +-- [E040] Syntax Error: tests/neg/i20511.scala:8:0 --------------------------------------------------------------------- +8 |val i = 1 // error + |^^^ + |'.' expected, but 'end of statement' found +-- [E083] Type Error: tests/neg/i20511.scala:7:21 ---------------------------------------------------------------------- +7 |export toppingPrice, crustPrice // error // error + | ^^^^^^^^^^ + | Any is not a valid export prefix, since it is not an immutable path + | + | longer explanation available when compiling with `-explain` diff --git a/tests/neg/i20511.scala b/tests/neg/i20511.scala new file mode 100644 index 000000000000..657609536bf0 --- /dev/null +++ b/tests/neg/i20511.scala @@ -0,0 +1,8 @@ +package pakiet + +def toppingPrice(size: Int): Double = ??? + +def crustPrice(crustType: Double): Double = ??? + +export toppingPrice, crustPrice // error // error +val i = 1 // error