case class SAMFunction(samTp: SymbolTable.Type, sam: SymbolTable.Symbol, synthCls: SymbolTable.Symbol) extends SymbolTable.PlainAttachment with Product with Serializable
Attached to a Function node during type checking when the expected type is a SAM type (and not a built-in FunctionN).
Ideally, we'd move to Dotty's Closure AST, which tracks the environment, the lifted method that has the implementation, and the target type. For backwards compatibility, an attachment is the best we can do right now.
- samTp
the expected type that triggered sam conversion (may be a subtype of the type corresponding to sam's owner)
- sam
the single abstract method implemented by the Function we're attaching this to
- synthCls
the (synthetic) class representing the eventual implementation class (spun at runtime by LMF on the JVM)
- Since
2.12.0-M4
- Alphabetic
- By Inheritance
- SAMFunction
- Serializable
- Serializable
- Product
- Equals
- PlainAttachment
- ImportableAttachment
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
SAMFunction(samTp: SymbolTable.Type, sam: SymbolTable.Symbol, synthCls: SymbolTable.Symbol)
- samTp
the expected type that triggered sam conversion (may be a subtype of the type corresponding to sam's owner)
- sam
the single abstract method implemented by the Function we're attaching this to
- synthCls
the (synthetic) class representing the eventual implementation class (spun at runtime by LMF on the JVM)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
importAttachment(importer: SymbolTable.Importer): SAMFunction.this.type
- Definition Classes
- PlainAttachment → ImportableAttachment
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val sam: SymbolTable.Symbol
- val samTp: SymbolTable.Type
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val synthCls: SymbolTable.Symbol
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()