diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-08-29 21:13:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-29 21:13:00 +0200 |
| commit | bf42ba41a44dc9bd74b0e2abe2954ad0d818d3ed (patch) | |
| tree | edf8b312c1c7745b83dad76b07ca8d60f63dfbbd | |
| parent | 7b84298f1b35a890230c56a55d164617c86fd2b2 (diff) | |
| parent | 74f2d582d237770b092923702fe073300dcf46ed (diff) | |
| download | rust-bf42ba41a44dc9bd74b0e2abe2954ad0d818d3ed.tar.gz rust-bf42ba41a44dc9bd74b0e2abe2954ad0d818d3ed.zip | |
Rollup merge of #101156 - Jarcho:remove_sync_lint_pass, r=compiler-errors
Remove `Sync` requirement from lint pass objects This is blocking the clippy sync (#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
| -rw-r--r-- | compiler/rustc_lint/src/passes.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_lint/src/passes.rs b/compiler/rustc_lint/src/passes.rs index 413f06a97a2..90c554c2e04 100644 --- a/compiler/rustc_lint/src/passes.rs +++ b/compiler/rustc_lint/src/passes.rs @@ -243,6 +243,5 @@ macro_rules! declare_combined_early_lint_pass { } /// A lint pass boxed up as a trait object. -pub type EarlyLintPassObject = Box<dyn EarlyLintPass + sync::Send + sync::Sync + 'static>; -pub type LateLintPassObject = - Box<dyn for<'tcx> LateLintPass<'tcx> + sync::Send + sync::Sync + 'static>; +pub type EarlyLintPassObject = Box<dyn EarlyLintPass + sync::Send + 'static>; +pub type LateLintPassObject = Box<dyn for<'tcx> LateLintPass<'tcx> + sync::Send + 'static>; |
