abstract class UnCurry extends SubComponent with InfoTransform with reflect.internal.transform.UnCurry with TypingTransformers with TreeDSL
- uncurry all symbol and tree types (@see UnCurryPhase) -- this includes normalizing all proper types.
- for every curried parameter list: (ps_1) ... (ps_n) ==> (ps_1, ..., ps_n)
- for every curried application: f(args_1)...(args_n) ==> f(args_1, ..., args_n)
- for every type application: f[Ts] ==> f[Ts]() unless followed by parameters
- for every use of a parameterless function: f ==> f() and q.f ==> q.f()
- for every def-parameter: x: => T ==> x: () => T
- for every use of a def-parameter: x ==> x.apply()
- for every argument to a def parameter
x: => T': if argument is not a reference to a def parameter: convert argumenteto (expansion of)() => e' - for every repeated Scala parameter
x: T*' --> x: Seq[T]. - for every repeated Java parameter
x: T...' --> x: Array[T], except: if T is an unbounded abstract type, replace --> x: Array[Object] - for every method defining repeated parameters annotated with @varargs, generate a synthetic Java-style vararg method
- for every argument list that corresponds to a repeated Scala parameter (a_1, ..., a_n) => (Seq(a_1, ..., a_n))
- for every argument list that corresponds to a repeated Java parameter (a_1, ..., a_n) => (Array(a_1, ..., a_n))
- for every argument list that is an escaped sequence (a_1:_*) => (a_1) (possibly converted to sequence or array, as needed)
- convert implicit method types to method types
- convert non-trivial catches in try statements to matches
- convert non-local returns to throws with enclosing try statements.
- convert try-catch expressions in contexts where there might be values on the stack to a local method and a call to it (since an exception empties the evaluation stack):
meth(x_1,..., try { x_i } catch { ..}, .. x_b0) ==> { def liftedTry$1 = try { x_i } catch { .. } meth(x_1, .., liftedTry$1(), .. ) }
- remove calls to elidable methods and replace their bodies with NOPs when elide-below requires it
- Source
- UnCurry.scala
- Alphabetic
- By Inheritance
- UnCurry
- TreeDSL
- TypingTransformers
- UnCurry
- InfoTransform
- Transform
- SubComponent
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new UnCurry()
Type Members
-
abstract
class
StdPhase extends GlobalPhase
A standard phase template
A standard phase template
- Definition Classes
- SubComponent
-
class
Phase extends InfoTransform.Phase
- Definition Classes
- InfoTransform
-
abstract
class
ThicketTransformer extends TypingTransformer
A base class for typing transformers that need to perform "thicket expansion".
A base class for typing transformers that need to perform "thicket expansion". A thicket is the output of a transformation that is flattened into the enclosing block.
- Definition Classes
- TypingTransformers
-
abstract
class
TypingTransformer extends Global.Transformer
- Definition Classes
- TypingTransformers
- class UnCurryTransformer extends TypingTransformer
-
case class
VarargsSymbolAttachment extends Product with Serializable
- Definition Classes
- UnCurry
Abstract Value Members
-
abstract
val
global: Global
The global environment; overridden by instantiation in Global.
The global environment; overridden by instantiation in Global.
- Definition Classes
- UnCurry → TreeDSL → TypingTransformers → UnCurry → SubComponent
-
abstract
val
runsAfter: List[String]
Names of phases that must run before this phase.
Names of phases that must run before this phase.
- Definition Classes
- SubComponent
-
abstract
val
runsRightAfter: Option[String]
Name of the phase that this phase must follow immediately.
Name of the phase that this phase must follow immediately.
- Definition Classes
- SubComponent
Concrete Value Members
-
object
CODE
- Definition Classes
- TreeDSL
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (UnCurry, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
afterOwnPhase[T](op: ⇒ T): T
- Definition Classes
- SubComponent
- Annotations
- @inline()
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
final
def
beforeOwnPhase[T](op: ⇒ T): T
- Definition Classes
- SubComponent
- Annotations
- @inline()
-
def
changesBaseClasses: Boolean
- Definition Classes
- UnCurry → InfoTransform
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
enabled: Boolean
Is this component enabled? Default is true.
Is this component enabled? Default is true.
- Definition Classes
- SubComponent
- def ensuring(cond: (UnCurry) ⇒ Boolean, msg: ⇒ Any): UnCurry
- def ensuring(cond: (UnCurry) ⇒ Boolean): UnCurry
- def ensuring(cond: Boolean, msg: ⇒ Any): UnCurry
- def ensuring(cond: Boolean): UnCurry
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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
hashCode(): Int
SubComponent are added to a HashSet and two phases are the same if they have the same name
SubComponent are added to a HashSet and two phases are the same if they have the same name
- Definition Classes
- SubComponent → AnyRef → Any
-
val
initial: Boolean
True if this phase runs before all other phases.
True if this phase runs before all other phases. Usually,
parser.- Definition Classes
- SubComponent
-
val
internal: Boolean
True if this phase is not provided by a plug-in.
True if this phase is not provided by a plug-in.
- Definition Classes
- SubComponent
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
keepsTypeParams: Boolean
- Attributes
- protected
- Definition Classes
- InfoTransform
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newPhase(prev: nsc.Phase): StdPhase
Create a new phase which applies transformer
Create a new phase which applies transformer
- Definition Classes
- InfoTransform → Transform → SubComponent
-
def
newRootLocalTyper(unit: Global.CompilationUnit): (analyzer)#Typer
- Attributes
- protected
- Definition Classes
- TypingTransformers
-
def
newTransformer(unit: Global.CompilationUnit): Global.Transformer
The transformer factory
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
ownPhase: nsc.Phase
The phase corresponding to this subcomponent in the current compiler run
The phase corresponding to this subcomponent in the current compiler run
- Definition Classes
- SubComponent
-
val
phaseName: String
The name of the phase
The name of the phase
- Definition Classes
- UnCurry → SubComponent
-
def
phaseNewFlags: Long
New flags defined by the phase which are not valid before
New flags defined by the phase which are not valid before
- Definition Classes
- SubComponent
-
def
phaseNextFlags: Long
New flags defined by the phase which are not valid until immediately after it
New flags defined by the phase which are not valid until immediately after it
- Definition Classes
- SubComponent
-
val
requires: List[String]
Names of phases required by this component.
Names of phases required by this component. Default is
Nil.- Definition Classes
- SubComponent
-
val
runsBefore: List[String]
Names of phases that must run after this phase.
Names of phases that must run after this phase. Default is
Nil.- Definition Classes
- SubComponent
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
val
terminal: Boolean
True if this phase runs after all other phases.
True if this phase runs after all other phases. Usually,
terminal.- Definition Classes
- SubComponent
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transformInfo(sym: Global.Symbol, tp: Global.Type): Global.Type
- Definition Classes
- UnCurry
-
val
uncurry: Global.TypeMap
- Definition Classes
- UnCurry
-
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()
- def →[B](y: B): (UnCurry, B)
-
object
DesugaredParameterType
- Definition Classes
- UnCurry
Deprecated Value Members
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from UnCurry to StringFormat[UnCurry] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)instead ofvalue.formatted(formatString), or use thef""string interpolator. In Java 15 and later,formattedresolves to the new method in String which has reversed parameters.
The Scala compiler and reflection APIs.