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

Linear Supertypes
Serializable, java.io.Serializable, Product, Equals, SymbolTable.PlainAttachment, SymbolTable.ImportableAttachment, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SAMFunction
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. PlainAttachment
  7. ImportableAttachment
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  9. def importAttachment(importer: SymbolTable.Importer): SAMFunction.this.type
    Definition Classes
    PlainAttachmentImportableAttachment
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. val sam: SymbolTable.Symbol
  15. val samTp: SymbolTable.Type
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. val synthCls: SymbolTable.Symbol
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Serializable

Inherited from java.io.Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped