@@ -125,16 +125,17 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
125125 store. register_early_pass ( sess, false , true , box BuiltinCombinedEarlyLintPass :: new ( ) ) ;
126126 }
127127
128- // FIXME: Make a separate lint type which do not require typeck tables
129-
130128 late_lint_methods ! ( declare_combined_late_lint_pass, [ BuiltinCombinedModuleLateLintPass , [
131129 HardwiredLints : HardwiredLints ,
132130 WhileTrue : WhileTrue ,
133131 ImproperCTypes : ImproperCTypes ,
134132 VariantSizeDifferences : VariantSizeDifferences ,
135133 BoxPointers : BoxPointers ,
136134 PathStatements : PathStatements ,
135+
136+ // Depends on referenced function signatures in expressions
137137 UnusedResults : UnusedResults ,
138+
138139 NonUpperCaseGlobals : NonUpperCaseGlobals ,
139140 NonShorthandFieldPatterns : NonShorthandFieldPatterns ,
140141 UnusedAllocation : UnusedAllocation ,
@@ -157,39 +158,35 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
157158
158159 TrivialConstraints : TrivialConstraints ,
159160 TypeLimits : TypeLimits :: new( ) ,
161+
162+ NonSnakeCase : NonSnakeCase ,
163+ InvalidNoMangleItems : InvalidNoMangleItems ,
164+
165+ // Depends on access levels
166+ UnreachablePub : UnreachablePub ,
167+
168+ ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
160169 ] ] , [ ' tcx] ) ;
161170
162171 store. register_late_pass ( sess, false , true , box BuiltinCombinedModuleLateLintPass :: new ( ) ) ;
163172
164173 late_lint_methods ! ( declare_combined_late_lint_pass, [ BuiltinCombinedLateLintPass , [
165-
166174 // 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?
168175 UnusedAttributes : UnusedAttributes ,
169176
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.
176178 UnstableFeatures : UnstableFeatures ,
177179
178- // Depends on access levels
179- InvalidNoMangleItems : InvalidNoMangleItems ,
180-
181- // Depends on access levels
182- UnreachablePub : UnreachablePub ,
183-
180+ // Tracks state across modules
184181 UnnameableTestItems : UnnameableTestItems :: new( ) ,
185182
186183 // Tracks attributes of parents
187184 MissingDoc : MissingDoc :: new( ) ,
188185
189186 // 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
190189 MissingDebugImplementations : MissingDebugImplementations :: new( ) ,
191-
192- ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
193190 ] ] , [ ' tcx] ) ;
194191
195192 store. register_late_pass ( sess, false , false , box BuiltinCombinedLateLintPass :: new ( ) ) ;
0 commit comments