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
- Partial function closures, we need to generate isDefinedAt and applyOrElse methods for these.
- Closures implementing non-trait classes
- Closures implementing classes that inherit from a class other than Object (a lambda cannot not be a run-time subtype of such a class)
- Closures that implement traits which run initialization code.
- 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
- Self type
-
ExpandSAMs.type
Members list
In this article