Scala Compiler2.12.21 < Back
 

# Packages

-  package root

  The Scala compiler and reflection APIs.

  The Scala compiler and reflection APIs.

  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package tools
  Definition Classes
    scala
-  package nsc
  Definition Classes
    tools
-  package typechecker
  Definition Classes
    nsc
- Adaptations
- Analyzer
- AnalyzerPlugins
- Checkable
- ConstantFolder
- ContextErrors
- ContextMode
- Contexts
- DestructureTypes
- Duplicators
- EtaExpansion
- Fingerprint
- Implicits
- ImplicitsStats
- Infer
- Macros
- MacrosStats
- MethodSynthesis
- Namers
- NamesDefaults
- PatternTypers
- RefChecks
- StdAttachments
- StructuredTypeStrings
- SuperAccessors
- SyntheticMethods
- Tags
- TreeCheckers
- TypeDiagnostics
- TypeStrings
- Typers
- TypersStats
- TypersTracking
- Unapplies

t

scala.tools.nsc.typechecker

# Unapplies 

###

#### trait Unapplies extends TreeDSL

Self Type
  Analyzer
Source
  Unapplies.scala

Linear Supertypes
TreeDSL, AnyRef, Any
Known Subclasses
erasure, treeChecker, ScaladocAnalyzer, InteractiveAnalyzer, Erasure, Duplicator, SpecializationDuplicator, Analyzer, Duplicators, TreeCheckers
 
Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. Unapplies
2. TreeDSL
3. AnyRef
4. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show All

Visibility

1. Public
2. All

### Type Members

1.  class ClassForCaseCompanionAttachment extends AnyRef

### Abstract Value Members

1.  abstract val global: Global
   Definition Classes
     TreeDSL

### Concrete Value Members

1.  object CODE
   Definition Classes
     TreeDSL
2.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
3.  final def ##(): Int
   Definition Classes
     AnyRef → Any
4.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from Unapplies to any2stringadd[Unapplies] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
5.  def ->[B](y: B): (Unapplies, B)
   Implicit
     This member is added by an implicit conversion from Unapplies to ArrowAssoc[Unapplies] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
6.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
7.  final def asInstanceOf[T0]: T0
   Definition Classes
     Any
8.  def caseClassCopyMeth(cdef: Global.ClassDef): Option[Global.DefDef]

   Generates copy methods for case classes.

   Generates copy methods for case classes. Copy only has defaults on the first parameter list, as of scala/bug#5009.

   The parameter types of the copy method need to be exactly the same as the parameter types of the primary constructor. Just copying the TypeTree is not enough: a type `C` might refer to something else *inside* the class (i.e. as parameter type of `copy`) than *outside* the class (i.e. in the class parameter list).

   One such example is t0054.scala: class A { case class B(x: C) extends A { def copy(x: C = x) = ... } class C {} } (1) (2)

   The reference (1) to C is `A.this.C`. The reference (2) is `B.this.C` - not the same.

   This is fixed with a hack currently. `Unapplies.caseClassCopyMeth`, which creates the copy method, uses empty `TypeTree()` nodes for parameter types.

   In `Namers.enterDefDef`, the copy method gets a special type completer (`enterCopyMethod`). Before computing the body type of `copy`, the class parameter types are assigned the copy method parameters.

   This attachment class stores the copy method parameter ValDefs as an attachment in the ClassDef of the case class.

9.  def caseModuleApplyMeth(cdef: Global.ClassDef): Global.DefDef

   The apply method corresponding to a case class

10.  def caseModuleDef(cdef: Global.ClassDef): Global.ModuleDef

    The module corresponding to a case class; overrides toString to show the module's name

11.  def caseModuleUnapplyMeth(cdef: Global.ClassDef): Global.DefDef

    The unapply method corresponding to a case class

12.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... ) @native()
13.  def companionModuleDef(cdef: Global.ClassDef, parents: List[Global.Tree] = Nil, body: List[Global.Tree] = Nil): Global.ModuleDef
14.  def directUnapplyMember(tp: Global.Type): Global.Symbol

    Returns unapply or unapplySeq if available, without further checks.

15.  def ensuring(cond: (Unapplies) ⇒ Boolean, msg: ⇒ Any): Unapplies
    Implicit
      This member is added by an implicit conversion from Unapplies to Ensuring[Unapplies] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
16.  def ensuring(cond: (Unapplies) ⇒ Boolean): Unapplies
    Implicit
      This member is added by an implicit conversion from Unapplies to Ensuring[Unapplies] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
17.  def ensuring(cond: Boolean, msg: ⇒ Any): Unapplies
    Implicit
      This member is added by an implicit conversion from Unapplies to Ensuring[Unapplies] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
18.  def ensuring(cond: Boolean): Unapplies
    Implicit
      This member is added by an implicit conversion from Unapplies to Ensuring[Unapplies] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
19.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
20.  def equals(arg0: Any): Boolean
    Definition Classes
      AnyRef → Any
21.  def factoryMeth(mods: Global.Modifiers, name: Global.TermName, cdef: Global.ClassDef): Global.DefDef

    The apply method corresponding to a case class

22.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )
23.  final def getClass(): Class[_]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
24.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
25.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
26.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
27.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
28.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
29.  final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
      AnyRef
30.  def toString(): String
    Definition Classes
      AnyRef → Any
31.  def unapplyMember(tp: Global.Type): Global.Symbol

    Filters out unapplies with multiple (non-implicit) parameter lists, as they cannot be used as extractors

32.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
33.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
34.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws( ... ) @native()
35.  def →[B](y: B): (Unapplies, B)
    Implicit
      This member is added by an implicit conversion from Unapplies to ArrowAssoc[Unapplies] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc
36.  object HasUnapply

### Deprecated Value Members

1.  def formatted(fmtstr: String): String
   Implicit
     This member is added by an implicit conversion from Unapplies to StringFormat[Unapplies] performed by method StringFormat in scala.Predef.
   Definition Classes
     StringFormat
   Annotations
     @deprecated @inline()
   Deprecated

     (Since version 2.12.16) Use `formatString.format(value)` instead of `value.formatted(formatString)`, or use the `f""` string interpolator. In Java 15 and later, `formatted` resolves to the new method in String which has reversed parameters.

### Inherited from TreeDSL

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from Unapplies to any2stringadd[Unapplies]

### Inherited by implicit conversion StringFormat from Unapplies to StringFormat[Unapplies]

### Inherited by implicit conversion Ensuring from Unapplies to Ensuring[Unapplies]

### Inherited by implicit conversion ArrowAssoc from Unapplies to ArrowAssoc[Unapplies]

### Ungrouped