Skip to content

Commit 5b74a33

Browse files
Rollup merge of rust-lang#106248 - dtolnay:revertupcastlint, r=jackh726
Revert "Implement allow-by-default `multiple_supertrait_upcastable` lint" This is a clean revert of rust-lang#105484. I confirmed that reverting that PR fixes the regression reported in rust-lang#106247. ~~I can't say I understand what this code is doing, but maybe it can be re-landed with a different implementation.~~ **Edit:** rust-lang#106247 (comment) has an explanation of why rust-lang#105484 ends up surfacing spurious `where_clause_object_safety` errors. The implementation of `where_clause_object_safety` assumes we only check whether a trait is object safe when somebody actually uses that trait with `dyn`. However the implementation of `multiple_supertrait_upcastable` added in the problematic PR involves checking *every* trait for whether it is object-safe. FYI `@nbdd0121` `@compiler-errors`
2 parents fad7339 + 4271ed4 commit 5b74a33

File tree

12 files changed

+9
-167
lines changed

12 files changed

+9
-167
lines changed

compiler/rustc_feature/src/active.rs

-2
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,6 @@ declare_features! (
160160
(active, intrinsics, "1.0.0", None, None),
161161
/// Allows using `#[lang = ".."]` attribute for linking items to special compiler logic.
162162
(active, lang_items, "1.0.0", None, None),
163-
/// Allows the `multiple_supertrait_upcastable` lint.
164-
(active, multiple_supertrait_upcastable, "CURRENT_RUSTC_VERSION", None, None),
165163
/// Allows using `#[omit_gdb_pretty_printer_section]`.
166164
(active, omit_gdb_pretty_printer_section, "1.5.0", None, None),
167165
/// Allows using `#[prelude_import]` on glob `use` items.

compiler/rustc_lint/src/lib.rs

-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ mod late;
6161
mod let_underscore;
6262
mod levels;
6363
mod methods;
64-
mod multiple_supertrait_upcastable;
6564
mod non_ascii_idents;
6665
mod non_fmt_panic;
6766
mod nonstandard_style;
@@ -96,7 +95,6 @@ use hidden_unicode_codepoints::*;
9695
use internal::*;
9796
use let_underscore::*;
9897
use methods::*;
99-
use multiple_supertrait_upcastable::*;
10098
use non_ascii_idents::*;
10199
use non_fmt_panic::NonPanicFmt;
102100
use nonstandard_style::*;
@@ -231,7 +229,6 @@ late_lint_methods!(
231229
InvalidAtomicOrdering: InvalidAtomicOrdering,
232230
NamedAsmLabels: NamedAsmLabels,
233231
OpaqueHiddenInferredBound: OpaqueHiddenInferredBound,
234-
MultipleSupertraitUpcastable: MultipleSupertraitUpcastable,
235232
]
236233
]
237234
);

compiler/rustc_lint/src/multiple_supertrait_upcastable.rs

-63
This file was deleted.

compiler/rustc_span/src/symbol.rs

-1
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,6 @@ symbols! {
944944
mul,
945945
mul_assign,
946946
mul_with_overflow,
947-
multiple_supertrait_upcastable,
948947
must_not_suspend,
949948
must_use,
950949
naked,

library/alloc/src/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
#![warn(missing_debug_implementations)]
8888
#![warn(missing_docs)]
8989
#![allow(explicit_outlives_requirements)]
90-
#![cfg_attr(not(bootstrap), warn(multiple_supertrait_upcastable))]
9190
//
9291
// Library features:
9392
#![feature(alloc_layout_extra)]
@@ -192,7 +191,6 @@
192191
#![feature(unsized_fn_params)]
193192
#![feature(c_unwind)]
194193
#![feature(with_negative_coherence)]
195-
#![cfg_attr(not(bootstrap), feature(multiple_supertrait_upcastable))]
196194
//
197195
// Rustdoc features:
198196
#![feature(doc_cfg)]

library/core/src/error.rs

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ use crate::fmt::{Debug, Display};
2828
#[stable(feature = "rust1", since = "1.0.0")]
2929
#[cfg_attr(not(test), rustc_diagnostic_item = "Error")]
3030
#[rustc_has_incoherent_inherent_impls]
31-
#[cfg_attr(not(bootstrap), allow(multiple_supertrait_upcastable))]
3231
pub trait Error: Debug + Display {
3332
/// The lower-level source of this error, if any.
3433
///

library/core/src/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@
9595
#![warn(missing_docs)]
9696
#![allow(explicit_outlives_requirements)]
9797
#![allow(incomplete_features)]
98-
#![cfg_attr(not(bootstrap), warn(multiple_supertrait_upcastable))]
9998
//
10099
// Library features:
101100
#![feature(const_align_offset)]
@@ -232,7 +231,6 @@
232231
#![feature(unsized_fn_params)]
233232
#![feature(asm_const)]
234233
#![feature(const_transmute_copy)]
235-
#![cfg_attr(not(bootstrap), feature(multiple_supertrait_upcastable))]
236234
//
237235
// Target features:
238236
#![feature(arm_target_feature)]

src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.rs

-12
This file was deleted.

src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.stderr

-57
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// check-pass
2+
3+
#![deny(where_clauses_object_safety)]
4+
5+
pub trait Trait {
6+
fn method(&self) where Self: Sync;
7+
}
8+
9+
fn main() {}

src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.rs

-10
This file was deleted.

src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.stderr

-14
This file was deleted.

0 commit comments

Comments
 (0)