@@ -122,67 +122,80 @@ scalacOptions ++= Seq(
122122### Compilation Phases
123123
124124<dl class =" definition-list " >
125- <dt >initial</dt >
126- <dd >initializing compiler</dd >
127-
128- <dt >parse</dt >
129- <dd >parse source files</dd >
125+ <!--
126+ Generated with GNU sed:
127+ scalac -Vphases | tail -n+3 | sed -rn 's|^\s*([a-z]+)\s+[0-9]+\s+([a-z@].+)$|<dt>\1</dt>\n<dd>\2</dd>\n|p'
128+ -->
129+ <dt >parser</dt >
130+ <dd >parse source into ASTs, perform simple desugaring</dd >
130131
131132<dt >namer</dt >
132- <dd >create symbols</dd >
133+ <dd >resolve names, attach symbols to named trees</dd >
134+
135+ <dt >packageobjects</dt >
136+ <dd >load package objects</dd >
137+
138+ <dt >typer</dt >
139+ <dd >the meat and potatoes: type the trees</dd >
140+
141+ <dt >superaccessors</dt >
142+ <dd >add super accessors in traits and nested classes</dd >
143+
144+ <dt >extmethods</dt >
145+ <dd >add extension methods for inline classes</dd >
146+
147+ <dt >pickler</dt >
148+ <dd >serialize symbol tables</dd >
133149
134- <dt >analyze </dt >
135- <dd >name and type analysis </dd >
150+ <dt >refchecks </dt >
151+ <dd >reference/override checking, translate nested objects </dd >
136152
137- <dt >refcheck </dt >
138- <dd >reference checking </dd >
153+ <dt >patmat </dt >
154+ <dd >translate match expressions </dd >
139155
140156<dt >uncurry</dt >
141- <dd >uncurry function types and applications </dd >
157+ <dd >uncurry, translate function values to anonymous classes </dd >
142158
143- <dt >lambdalift </dt >
144- <dd >lambda lifter </dd >
159+ <dt >fields </dt >
160+ <dd >synthesize accessors and fields, add bitmaps for lazy vals </dd >
145161
146- <dt >typesasvalues </dt >
147- <dd >represent types as values </dd >
162+ <dt >tailcalls </dt >
163+ <dd >replace tail calls by jumps </dd >
148164
149- <dt >addaccessors </dt >
150- <dd >add accessors for constructor arguments </dd >
165+ <dt >specialize </dt >
166+ <dd >@specialized-driven class and method specialization </dd >
151167
152- <dt >explicitouterclasses </dt >
153- <dd >make links from inner classes to enclosing one explicit </dd >
168+ <dt >explicitouter </dt >
169+ <dd >this refs to outer pointers </dd >
154170
155- <dt >addconstructors </dt >
156- <dd >add explicit constructor for each class </dd >
171+ <dt >erasure </dt >
172+ <dd >erase types, add interfaces for traits </dd >
157173
158- <dt >tailcall </dt >
159- <dd >add tail-calls </dd >
174+ <dt >posterasure </dt >
175+ <dd >clean up erased inline classes </dd >
160176
161- <dt >wholeprog </dt >
162- <dd >perform whole program analysis </dd >
177+ <dt >lambdalift </dt >
178+ <dd >move nested functions to top level </dd >
163179
164- <dt >addinterfaces </dt >
165- <dd >add one interface per class </dd >
180+ <dt >constructors </dt >
181+ <dd >move field definitions into constructors </dd >
166182
167- <dt >expandmixins </dt >
168- <dd >expand mixins by code copying </dd >
183+ <dt >flatten </dt >
184+ <dd >eliminate inner classes </dd >
169185
170- <dt >boxing </dt >
171- <dd >makes boxing explicit </dd >
186+ <dt >mixin </dt >
187+ <dd >mixin composition </dd >
172188
173- <dt >erasure </dt >
174- <dd >type eraser </dd >
189+ <dt >cleanup </dt >
190+ <dd >platform-specific cleanups, generate reflective calls </dd >
175191
176- <dt >icode </dt >
177- <dd >generate icode </dd >
192+ <dt >delambdafy </dt >
193+ <dd >remove lambdas </dd >
178194
179- <dt >codegen </dt >
180- <dd >enable code generation </dd >
195+ <dt >jvm </dt >
196+ <dd >generate JVM bytecode </dd >
181197
182198<dt >terminal</dt >
183- <dd >compilation terminated</dd >
184-
185- <dt >all</dt >
186- <dd >matches all phases</dd >
199+ <dd >the last phase during a compilation run</dd >
187200</dl >
188201
0 commit comments