Skip to content

Commit bf42ba4

Browse files
authored
Rollup merge of rust-lang#101156 - Jarcho:remove_sync_lint_pass, r=compiler-errors
Remove `Sync` requirement from lint pass objects This is blocking the clippy sync (rust-lang#101140). One of the lint passes contains a `Cell` in order to make lifetimes work. It could be worked around, but this is the easier change to make if there are no objections. Rational for removing the requirement * All lint pass methods take `&mut self` arguments. * Many passes depend on running is visitor order. * Lint passes are created on demand so they're only ever stored in a local. * `Send` is enough to lint different passes in parallel. `LintStore` remains `Sync` with this. The constructor functions it contains still maintain their `Sync` requirement. r? rust-lang/compiler
2 parents 7b84298 + 74f2d58 commit bf42ba4

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

Diff for: compiler/rustc_lint/src/passes.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,5 @@ macro_rules! declare_combined_early_lint_pass {
243243
}
244244

245245
/// A lint pass boxed up as a trait object.
246-
pub type EarlyLintPassObject = Box<dyn EarlyLintPass + sync::Send + sync::Sync + 'static>;
247-
pub type LateLintPassObject =
248-
Box<dyn for<'tcx> LateLintPass<'tcx> + sync::Send + sync::Sync + 'static>;
246+
pub type EarlyLintPassObject = Box<dyn EarlyLintPass + sync::Send + 'static>;
247+
pub type LateLintPassObject = Box<dyn for<'tcx> LateLintPass<'tcx> + sync::Send + 'static>;

0 commit comments

Comments
 (0)