@@ -125,16 +125,17 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
125
125
store. register_early_pass ( sess, false , true , box BuiltinCombinedEarlyLintPass :: new ( ) ) ;
126
126
}
127
127
128
- // FIXME: Make a separate lint type which do not require typeck tables
129
-
130
128
late_lint_methods ! ( declare_combined_late_lint_pass, [ BuiltinCombinedModuleLateLintPass , [
131
129
HardwiredLints : HardwiredLints ,
132
130
WhileTrue : WhileTrue ,
133
131
ImproperCTypes : ImproperCTypes ,
134
132
VariantSizeDifferences : VariantSizeDifferences ,
135
133
BoxPointers : BoxPointers ,
136
134
PathStatements : PathStatements ,
135
+
136
+ // Depends on referenced function signatures in expressions
137
137
UnusedResults : UnusedResults ,
138
+
138
139
NonUpperCaseGlobals : NonUpperCaseGlobals ,
139
140
NonShorthandFieldPatterns : NonShorthandFieldPatterns ,
140
141
UnusedAllocation : UnusedAllocation ,
@@ -157,39 +158,35 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
157
158
158
159
TrivialConstraints : TrivialConstraints ,
159
160
TypeLimits : TypeLimits :: new( ) ,
161
+
162
+ NonSnakeCase : NonSnakeCase ,
163
+ InvalidNoMangleItems : InvalidNoMangleItems ,
164
+
165
+ // Depends on access levels
166
+ UnreachablePub : UnreachablePub ,
167
+
168
+ ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
160
169
] ] , [ ' tcx] ) ;
161
170
162
171
store. register_late_pass ( sess, false , true , box BuiltinCombinedModuleLateLintPass :: new ( ) ) ;
163
172
164
173
late_lint_methods ! ( declare_combined_late_lint_pass, [ BuiltinCombinedLateLintPass , [
165
-
166
174
// Uses attr::is_used which is untracked, can't be an incremental module pass.
167
- // Doesn't require type tables. Make a separate combined pass for that?
168
175
UnusedAttributes : UnusedAttributes ,
169
176
170
-
171
- // Checks crate attributes. Find out how that would work.
172
- NonSnakeCase : NonSnakeCase ,
173
-
174
-
175
- // Needs to look at crate attributes. Make sure that works
177
+ // Needs to run after UnusedAttributes as it marks all `feature` attributes as used.
176
178
UnstableFeatures : UnstableFeatures ,
177
179
178
- // Depends on access levels
179
- InvalidNoMangleItems : InvalidNoMangleItems ,
180
-
181
- // Depends on access levels
182
- UnreachablePub : UnreachablePub ,
183
-
180
+ // Tracks state across modules
184
181
UnnameableTestItems : UnnameableTestItems :: new( ) ,
185
182
186
183
// Tracks attributes of parents
187
184
MissingDoc : MissingDoc :: new( ) ,
188
185
189
186
// Depends on access levels
187
+ // FIXME: Turn the computation of types which implement Debug into a query
188
+ // and change this to a module lint pass
190
189
MissingDebugImplementations : MissingDebugImplementations :: new( ) ,
191
-
192
- ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
193
190
] ] , [ ' tcx] ) ;
194
191
195
192
store. register_late_pass ( sess, false , false , box BuiltinCombinedLateLintPass :: new ( ) ) ;
0 commit comments