ExpandSAMs

dotty.tools.dotc.transform.ExpandSAMs
See theExpandSAMs companion class
object ExpandSAMs

Expand SAM closures that cannot be represented by the JVM as lambdas to anonymous classes. These fall into five categories

  1. Partial function closures, we need to generate isDefinedAt and applyOrElse methods for these.
  2. Closures implementing non-trait classes
  3. Closures implementing classes that inherit from a class other than Object (a lambda cannot not be a run-time subtype of such a class)
  4. Closures that implement traits which run initialization code.
  5. Closures that get synthesized abstract methods in the transformation pipeline. These methods can be (1) superaccessors, (2) outer references, (3) accessors for fields.

However, implicit function types do not count as SAM types.

Attributes

Companion
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
ExpandSAMs.type

Members list

Value members

Concrete methods

Is the SAMType cls also a SAM under the rules of the platform?

Is the SAMType cls also a SAM under the rules of the platform?

Attributes

Concrete fields

val name: String