@@ -127,127 +127,111 @@ fn lint_mod(tcx: TyCtxt<'_>, module_def_id: LocalDefId) {
127127 late:: late_lint_mod ( tcx, module_def_id, BuiltinCombinedModuleLateLintPass :: new ( ) ) ;
128128}
129129
130- macro_rules! pre_expansion_lint_passes {
131- ( $macro: path, $args: tt) => {
132- $macro!( $args, [ KeywordIdents : KeywordIdents , ] ) ;
133- } ;
134- }
135-
136- macro_rules! early_lint_passes {
137- ( $macro: path, $args: tt) => {
138- $macro!(
139- $args,
140- [
141- UnusedParens : UnusedParens ,
142- UnusedBraces : UnusedBraces ,
143- UnusedImportBraces : UnusedImportBraces ,
144- UnsafeCode : UnsafeCode ,
145- SpecialModuleName : SpecialModuleName ,
146- AnonymousParameters : AnonymousParameters ,
147- EllipsisInclusiveRangePatterns : EllipsisInclusiveRangePatterns :: default ( ) ,
148- NonCamelCaseTypes : NonCamelCaseTypes ,
149- DeprecatedAttr : DeprecatedAttr :: new( ) ,
150- WhileTrue : WhileTrue ,
151- NonAsciiIdents : NonAsciiIdents ,
152- HiddenUnicodeCodepoints : HiddenUnicodeCodepoints ,
153- IncompleteFeatures : IncompleteFeatures ,
154- RedundantSemicolons : RedundantSemicolons ,
155- UnusedDocComment : UnusedDocComment ,
156- UnexpectedCfgs : UnexpectedCfgs ,
157- ]
158- ) ;
159- } ;
160- }
161-
162- macro_rules! declare_combined_early_pass {
163- ( [ $name: ident] , $passes: tt) => (
164- early_lint_methods!( declare_combined_early_lint_pass, [ pub $name, $passes] ) ;
165- )
166- }
167-
168- pre_expansion_lint_passes ! ( declare_combined_early_pass, [ BuiltinCombinedPreExpansionLintPass ] ) ;
169- early_lint_passes ! ( declare_combined_early_pass, [ BuiltinCombinedEarlyLintPass ] ) ;
170-
171- macro_rules! late_lint_passes {
172- ( $macro: path, $args: tt) => {
173- $macro!(
174- $args,
175- [
176- // Tracks state across modules
177- UnnameableTestItems : UnnameableTestItems :: new( ) ,
178- // Tracks attributes of parents
179- MissingDoc : MissingDoc :: new( ) ,
180- // Builds a global list of all impls of `Debug`.
181- // FIXME: Turn the computation of types which implement Debug into a query
182- // and change this to a module lint pass
183- MissingDebugImplementations : MissingDebugImplementations :: default ( ) ,
184- // Keeps a global list of foreign declarations.
185- ClashingExternDeclarations : ClashingExternDeclarations :: new( ) ,
186- ]
187- ) ;
188- } ;
189- }
190-
191- macro_rules! late_lint_mod_passes {
192- ( $macro: path, $args: tt) => {
193- $macro!(
194- $args,
195- [
196- ForLoopsOverFallibles : ForLoopsOverFallibles ,
197- DerefIntoDynSupertrait : DerefIntoDynSupertrait ,
198- HardwiredLints : HardwiredLints ,
199- ImproperCTypesDeclarations : ImproperCTypesDeclarations ,
200- ImproperCTypesDefinitions : ImproperCTypesDefinitions ,
201- VariantSizeDifferences : VariantSizeDifferences ,
202- BoxPointers : BoxPointers ,
203- PathStatements : PathStatements ,
204- LetUnderscore : LetUnderscore ,
205- // Depends on referenced function signatures in expressions
206- UnusedResults : UnusedResults ,
207- NonUpperCaseGlobals : NonUpperCaseGlobals ,
208- NonShorthandFieldPatterns : NonShorthandFieldPatterns ,
209- UnusedAllocation : UnusedAllocation ,
210- // Depends on types used in type definitions
211- MissingCopyImplementations : MissingCopyImplementations ,
212- // Depends on referenced function signatures in expressions
213- MutableTransmutes : MutableTransmutes ,
214- TypeAliasBounds : TypeAliasBounds ,
215- TrivialConstraints : TrivialConstraints ,
216- TypeLimits : TypeLimits :: new( ) ,
217- NonSnakeCase : NonSnakeCase ,
218- InvalidNoMangleItems : InvalidNoMangleItems ,
219- // Depends on effective visibilities
220- UnreachablePub : UnreachablePub ,
221- ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
222- InvalidValue : InvalidValue ,
223- DerefNullPtr : DerefNullPtr ,
224- // May Depend on constants elsewhere
225- UnusedBrokenConst : UnusedBrokenConst ,
226- UnstableFeatures : UnstableFeatures ,
227- ArrayIntoIter : ArrayIntoIter :: default ( ) ,
228- DropTraitConstraints : DropTraitConstraints ,
229- TemporaryCStringAsPtr : TemporaryCStringAsPtr ,
230- NonPanicFmt : NonPanicFmt ,
231- NoopMethodCall : NoopMethodCall ,
232- EnumIntrinsicsNonEnums : EnumIntrinsicsNonEnums ,
233- InvalidAtomicOrdering : InvalidAtomicOrdering ,
234- NamedAsmLabels : NamedAsmLabels ,
235- OpaqueHiddenInferredBound : OpaqueHiddenInferredBound ,
236- ]
237- ) ;
238- } ;
239- }
240-
241- macro_rules! declare_combined_late_pass {
242- ( [ $v: vis $name: ident] , $passes: tt) => (
243- late_lint_methods!( declare_combined_late_lint_pass, [ $v $name, $passes] , [ ' tcx] ) ;
244- )
245- }
130+ early_lint_methods ! (
131+ declare_combined_early_lint_pass,
132+ [
133+ pub BuiltinCombinedPreExpansionLintPass ,
134+ [
135+ KeywordIdents : KeywordIdents ,
136+ ]
137+ ]
138+ ) ;
139+
140+ early_lint_methods ! (
141+ declare_combined_early_lint_pass,
142+ [
143+ pub BuiltinCombinedEarlyLintPass ,
144+ [
145+ UnusedParens : UnusedParens ,
146+ UnusedBraces : UnusedBraces ,
147+ UnusedImportBraces : UnusedImportBraces ,
148+ UnsafeCode : UnsafeCode ,
149+ SpecialModuleName : SpecialModuleName ,
150+ AnonymousParameters : AnonymousParameters ,
151+ EllipsisInclusiveRangePatterns : EllipsisInclusiveRangePatterns :: default ( ) ,
152+ NonCamelCaseTypes : NonCamelCaseTypes ,
153+ DeprecatedAttr : DeprecatedAttr :: new( ) ,
154+ WhileTrue : WhileTrue ,
155+ NonAsciiIdents : NonAsciiIdents ,
156+ HiddenUnicodeCodepoints : HiddenUnicodeCodepoints ,
157+ IncompleteFeatures : IncompleteFeatures ,
158+ RedundantSemicolons : RedundantSemicolons ,
159+ UnusedDocComment : UnusedDocComment ,
160+ UnexpectedCfgs : UnexpectedCfgs ,
161+ ]
162+ ]
163+ ) ;
246164
247165// FIXME: Make a separate lint type which do not require typeck tables
248- late_lint_passes ! ( declare_combined_late_pass, [ pub BuiltinCombinedLateLintPass ] ) ;
249-
250- late_lint_mod_passes ! ( declare_combined_late_pass, [ BuiltinCombinedModuleLateLintPass ] ) ;
166+ late_lint_methods ! (
167+ declare_combined_late_lint_pass,
168+ [
169+ pub BuiltinCombinedLateLintPass ,
170+ [
171+ // Tracks state across modules
172+ UnnameableTestItems : UnnameableTestItems :: new( ) ,
173+ // Tracks attributes of parents
174+ MissingDoc : MissingDoc :: new( ) ,
175+ // Builds a global list of all impls of `Debug`.
176+ // FIXME: Turn the computation of types which implement Debug into a query
177+ // and change this to a module lint pass
178+ MissingDebugImplementations : MissingDebugImplementations :: default ( ) ,
179+ // Keeps a global list of foreign declarations.
180+ ClashingExternDeclarations : ClashingExternDeclarations :: new( ) ,
181+ ]
182+ ] ,
183+ [ ' tcx]
184+ ) ;
185+
186+ late_lint_methods ! (
187+ declare_combined_late_lint_pass,
188+ [
189+ BuiltinCombinedModuleLateLintPass ,
190+ [
191+ ForLoopsOverFallibles : ForLoopsOverFallibles ,
192+ DerefIntoDynSupertrait : DerefIntoDynSupertrait ,
193+ HardwiredLints : HardwiredLints ,
194+ ImproperCTypesDeclarations : ImproperCTypesDeclarations ,
195+ ImproperCTypesDefinitions : ImproperCTypesDefinitions ,
196+ VariantSizeDifferences : VariantSizeDifferences ,
197+ BoxPointers : BoxPointers ,
198+ PathStatements : PathStatements ,
199+ LetUnderscore : LetUnderscore ,
200+ // Depends on referenced function signatures in expressions
201+ UnusedResults : UnusedResults ,
202+ NonUpperCaseGlobals : NonUpperCaseGlobals ,
203+ NonShorthandFieldPatterns : NonShorthandFieldPatterns ,
204+ UnusedAllocation : UnusedAllocation ,
205+ // Depends on types used in type definitions
206+ MissingCopyImplementations : MissingCopyImplementations ,
207+ // Depends on referenced function signatures in expressions
208+ MutableTransmutes : MutableTransmutes ,
209+ TypeAliasBounds : TypeAliasBounds ,
210+ TrivialConstraints : TrivialConstraints ,
211+ TypeLimits : TypeLimits :: new( ) ,
212+ NonSnakeCase : NonSnakeCase ,
213+ InvalidNoMangleItems : InvalidNoMangleItems ,
214+ // Depends on effective visibilities
215+ UnreachablePub : UnreachablePub ,
216+ ExplicitOutlivesRequirements : ExplicitOutlivesRequirements ,
217+ InvalidValue : InvalidValue ,
218+ DerefNullPtr : DerefNullPtr ,
219+ // May Depend on constants elsewhere
220+ UnusedBrokenConst : UnusedBrokenConst ,
221+ UnstableFeatures : UnstableFeatures ,
222+ ArrayIntoIter : ArrayIntoIter :: default ( ) ,
223+ DropTraitConstraints : DropTraitConstraints ,
224+ TemporaryCStringAsPtr : TemporaryCStringAsPtr ,
225+ NonPanicFmt : NonPanicFmt ,
226+ NoopMethodCall : NoopMethodCall ,
227+ EnumIntrinsicsNonEnums : EnumIntrinsicsNonEnums ,
228+ InvalidAtomicOrdering : InvalidAtomicOrdering ,
229+ NamedAsmLabels : NamedAsmLabels ,
230+ OpaqueHiddenInferredBound : OpaqueHiddenInferredBound ,
231+ ]
232+ ] ,
233+ [ ' tcx]
234+ ) ;
251235
252236pub fn new_lint_store ( internal_lints : bool ) -> LintStore {
253237 let mut lint_store = LintStore :: new ( ) ;
0 commit comments