blob: 6cf6fa8ca6d2a9b00dc9038d850b1ad4fe914967 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
parser parse source into ASTs, perform simple desugaring
namer resolve names, attach symbols to named trees
packageobjects load package objects
typer the meat and potatoes: type the trees
superaccessors add super accessors in traits and nested classes
pickler serialize symbol tables
refchecks reference and override checking, translate nested objects
liftcode reify trees
uncurry uncurry, translate function values to anonymous classes
tailcalls replace tail calls by jumps
specialize @specialized-driven class and method specialization
explicitouter C.this refs become outer pointers, translate pattern matches
erasure erase types, add interfaces for traits
lazyvals allocate bitmaps, translate lazy vals into lazified defs
lambdalift move nested functions to top level
constructors move field definitions into constructors
flatten eliminate inner classes
mixin mixin composition
cleanup platform-specific cleanups, generate reflective calls
icode generate portable intermediate code
inliner optimization: do inlining
closelim optimization: eliminate uncalled closures
dce optimization: eliminate dead code
jvm generate JVM bytecode
terminal The last phase in the compiler chain
|