Skip to content

Compiler crash: Implicit Function types + SAM #4611

Closed
@allanrenucci

Description

@allanrenucci
trait Responder[T] {
  def responseFor(value: T): implicit Request => T
}

object Responder {
  val responseResponder: Responder[Response] =
    response => response
}

class Response
class Request
exception occurred while compiling tests/allan/Test.scala
Exception in thread "main" scala.MatchError: ArrayBuffer(<SingleDenotation of type MethodType(List(value), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Response)), AppliedType(TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class ImplicitFunction1),List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Request), TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Response))))>, <SingleDenotation of type MethodType(List(value), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Response)), MethodType(List(x$0), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Request)), TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Response)))>) (of class scala.collection.mutable.ArrayBuffer)
	at dotty.tools.dotc.transform.ExpandSAMs.transformBlock(ExpandSAMs.scala:46)
	at dotty.tools.dotc.transform.MegaPhase.goBlock(MegaPhase.scala:668)
        ...

Initially reported by @jeffmay on Gitter

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions