@@ -122,67 +122,76 @@ scalacOptions ++= Seq(
122
122
### Compilation Phases
123
123
124
124
<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
+ <dt >parser</dt >
126
+ <dd >parse source into ASTs, perform simple desugaring</dd >
130
127
131
128
<dt >namer</dt >
132
- <dd >create symbols</dd >
129
+ <dd >resolve names, attach symbols to named trees</dd >
130
+
131
+ <dt >packageobjects</dt >
132
+ <dd >load package objects</dd >
133
+
134
+ <dt >typer</dt >
135
+ <dd >the meat and potatoes: type the trees</dd >
136
+
137
+ <dt >superaccessors</dt >
138
+ <dd >add super accessors in traits and nested classes</dd >
139
+
140
+ <dt >extmethods</dt >
141
+ <dd >add extension methods for inline classes</dd >
142
+
143
+ <dt >pickler</dt >
144
+ <dd >serialize symbol tables</dd >
133
145
134
- <dt >analyze </dt >
135
- <dd >name and type analysis </dd >
146
+ <dt >refchecks </dt >
147
+ <dd >reference/override checking, translate nested objects </dd >
136
148
137
- <dt >refcheck </dt >
138
- <dd >reference checking </dd >
149
+ <dt >patmat </dt >
150
+ <dd >translate match expressions </dd >
139
151
140
152
<dt >uncurry</dt >
141
- <dd >uncurry function types and applications </dd >
153
+ <dd >uncurry, translate function values to anonymous classes </dd >
142
154
143
- <dt >lambdalift </dt >
144
- <dd >lambda lifter </dd >
155
+ <dt >fields </dt >
156
+ <dd >synthesize accessors and fields, add bitmaps for lazy vals </dd >
145
157
146
- <dt >typesasvalues </dt >
147
- <dd >represent types as values </dd >
158
+ <dt >tailcalls </dt >
159
+ <dd >replace tail calls by jumps </dd >
148
160
149
- <dt >addaccessors </dt >
150
- <dd >add accessors for constructor arguments </dd >
161
+ <dt >specialize </dt >
162
+ <dd >@specialized-driven class and method specialization </dd >
151
163
152
- <dt >explicitouterclasses </dt >
153
- <dd >make links from inner classes to enclosing one explicit </dd >
164
+ <dt >explicitouter </dt >
165
+ <dd >this refs to outer pointers </dd >
154
166
155
- <dt >addconstructors </dt >
156
- <dd >add explicit constructor for each class </dd >
167
+ <dt >erasure </dt >
168
+ <dd >erase types, add interfaces for traits </dd >
157
169
158
- <dt >tailcall </dt >
159
- <dd >add tail-calls </dd >
170
+ <dt >posterasure </dt >
171
+ <dd >clean up erased inline classes </dd >
160
172
161
- <dt >wholeprog </dt >
162
- <dd >perform whole program analysis </dd >
173
+ <dt >lambdalift </dt >
174
+ <dd >move nested functions to top level </dd >
163
175
164
- <dt >addinterfaces </dt >
165
- <dd >add one interface per class </dd >
176
+ <dt >constructors </dt >
177
+ <dd >move field definitions into constructors </dd >
166
178
167
- <dt >expandmixins </dt >
168
- <dd >expand mixins by code copying </dd >
179
+ <dt >flatten </dt >
180
+ <dd >eliminate inner classes </dd >
169
181
170
- <dt >boxing </dt >
171
- <dd >makes boxing explicit </dd >
182
+ <dt >mixin </dt >
183
+ <dd >mixin composition </dd >
172
184
173
- <dt >erasure </dt >
174
- <dd >type eraser </dd >
185
+ <dt >cleanup </dt >
186
+ <dd >platform-specific cleanups, generate reflective calls </dd >
175
187
176
- <dt >icode </dt >
177
- <dd >generate icode </dd >
188
+ <dt >delambdafy </dt >
189
+ <dd >remove lambdas </dd >
178
190
179
- <dt >codegen </dt >
180
- <dd >enable code generation </dd >
191
+ <dt >jvm </dt >
192
+ <dd >generate JVM bytecode </dd >
181
193
182
194
<dt >terminal</dt >
183
- <dd >compilation terminated</dd >
184
-
185
- <dt >all</dt >
186
- <dd >matches all phases</dd >
195
+ <dd >the last phase during a compilation run</dd >
187
196
</dl >
188
197
0 commit comments