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 argument
eto (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 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(), .. ) }
- 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
TypingTransformer
extends Global.Transformer
- Definition Classes
- TypingTransformers
- class UnCurryTransformer extends TypingTransformer
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
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
newTransformer(unit: Global.CompilationUnit): Global.Transformer
The transformer factory
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
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
- 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( ... )
- def →[B](y: B): (UnCurry, B)
-
object
DesugaredParameterType
- Definition Classes
- UnCurry
The Scala compiler API.
The following resources are useful for Scala plugin/compiler development: