Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion compiler/src/dotty/tools/dotc/parsing/Parsers.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1725,7 +1725,7 @@ object Parsers {
case arg =>
arg
val args1 = args.mapConserve(sanitize)

if in.isArrow || isPureArrow || erasedArgs.contains(true) then
functionRest(args)
else
Expand Down
2 changes: 0 additions & 2 deletions compiler/src/dotty/tools/dotc/typer/Typer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1977,8 +1977,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}")
Comment on lines -1980 to -1981
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is the correct fix. IMHO, for this kind of errors, we shouldn't run the typer in the first place.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, I think that this might actually be the correct fix. I even tried short-circuiting before typing ahead in Namer, but the presentation compiler leverages this for completions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, but we should open an issue for a better error messages !

TypeTree(defn.AnyType)
}
else typed(tree.tpt)
Expand Down
7 changes: 7 additions & 0 deletions tests/neg/i20511-1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package pakiet

def toppingPrice(size: Int): Double = ???

def crustPrice(crustType: Double): Double = ???

export toppingPrice.apply, crustPrice.unlift // error // error // error
8 changes: 8 additions & 0 deletions tests/neg/i20511.scala
Original file line number Diff line number Diff line change
@@ -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