Rollup merge of #130826 - fmease:compiler-mv-obj-safe-dyn-compat, r=compiler-errors
Compiler: Rename "object safe" to "dyn compatible" Completed T-lang FCP: https://github.com/rust-lang/lang-team/issues/286#issuecomment-2338905118. Tracking issue: https://github.com/rust-lang/rust/issues/130852 Excludes `compiler/rustc_codegen_cranelift` (to be filed separately). Includes Stable MIR. Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
This commit is contained in:
@@ -527,8 +527,8 @@ impl<'tcx> Interner for TyCtxt<'tcx> {
|
||||
self.trait_is_alias(trait_def_id)
|
||||
}
|
||||
|
||||
fn trait_is_object_safe(self, trait_def_id: DefId) -> bool {
|
||||
self.is_object_safe(trait_def_id)
|
||||
fn trait_is_dyn_compatible(self, trait_def_id: DefId) -> bool {
|
||||
self.is_dyn_compatible(trait_def_id)
|
||||
}
|
||||
|
||||
fn trait_is_fundamental(self, def_id: DefId) -> bool {
|
||||
|
||||
@@ -301,7 +301,7 @@ impl FlagComputation {
|
||||
ty::PredicateKind::Clause(ty::ClauseKind::WellFormed(arg)) => {
|
||||
self.add_args(slice::from_ref(&arg));
|
||||
}
|
||||
ty::PredicateKind::ObjectSafe(_def_id) => {}
|
||||
ty::PredicateKind::DynCompatible(_def_id) => {}
|
||||
ty::PredicateKind::Clause(ty::ClauseKind::ConstEvaluatable(uv)) => {
|
||||
self.add_const(uv);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ pub enum ReifyReason {
|
||||
/// * A vtable entry is directly converted to a function call (e.g. creating a fn ptr from a
|
||||
/// method on a `dyn` object).
|
||||
/// * A function with `#[track_caller]` is converted to a function pointer
|
||||
/// * If KCFI is enabled, creating a function pointer from a method on an object-safe trait.
|
||||
/// * If KCFI is enabled, creating a function pointer from a method on a dyn-compatible trait.
|
||||
/// This includes the case of converting `::call`-like methods on closure-likes to function
|
||||
/// pointers.
|
||||
FnPtr,
|
||||
|
||||
@@ -36,7 +36,7 @@ pub type PolyProjectionPredicate<'tcx> = ty::Binder<'tcx, ProjectionPredicate<'t
|
||||
|
||||
/// A statement that can be proven by a trait solver. This includes things that may
|
||||
/// show up in where clauses, such as trait predicates and projection predicates,
|
||||
/// and also things that are emitted as part of type checking such as `ObjectSafe`
|
||||
/// and also things that are emitted as part of type checking such as `DynCompatible`
|
||||
/// predicate which is emitted when a type is coerced to a trait object.
|
||||
///
|
||||
/// Use this rather than `PredicateKind`, whenever possible.
|
||||
@@ -147,7 +147,7 @@ impl<'tcx> Predicate<'tcx> {
|
||||
| PredicateKind::Clause(ClauseKind::TypeOutlives(_))
|
||||
| PredicateKind::Clause(ClauseKind::Projection(_))
|
||||
| PredicateKind::Clause(ClauseKind::ConstArgHasType(..))
|
||||
| PredicateKind::ObjectSafe(_)
|
||||
| PredicateKind::DynCompatible(_)
|
||||
| PredicateKind::Subtype(_)
|
||||
| PredicateKind::Coerce(_)
|
||||
| PredicateKind::Clause(ClauseKind::ConstEvaluatable(_))
|
||||
@@ -647,7 +647,7 @@ impl<'tcx> Predicate<'tcx> {
|
||||
| PredicateKind::Coerce(..)
|
||||
| PredicateKind::Clause(ClauseKind::RegionOutlives(..))
|
||||
| PredicateKind::Clause(ClauseKind::WellFormed(..))
|
||||
| PredicateKind::ObjectSafe(..)
|
||||
| PredicateKind::DynCompatible(..)
|
||||
| PredicateKind::Clause(ClauseKind::TypeOutlives(..))
|
||||
| PredicateKind::Clause(ClauseKind::ConstEvaluatable(..))
|
||||
| PredicateKind::ConstEquate(..)
|
||||
@@ -667,7 +667,7 @@ impl<'tcx> Predicate<'tcx> {
|
||||
| PredicateKind::Coerce(..)
|
||||
| PredicateKind::Clause(ClauseKind::RegionOutlives(..))
|
||||
| PredicateKind::Clause(ClauseKind::WellFormed(..))
|
||||
| PredicateKind::ObjectSafe(..)
|
||||
| PredicateKind::DynCompatible(..)
|
||||
| PredicateKind::Clause(ClauseKind::TypeOutlives(..))
|
||||
| PredicateKind::Clause(ClauseKind::ConstEvaluatable(..))
|
||||
| PredicateKind::ConstEquate(..)
|
||||
|
||||
@@ -3088,8 +3088,8 @@ define_print! {
|
||||
}
|
||||
ty::PredicateKind::Subtype(predicate) => p!(print(predicate)),
|
||||
ty::PredicateKind::Coerce(predicate) => p!(print(predicate)),
|
||||
ty::PredicateKind::ObjectSafe(trait_def_id) => {
|
||||
p!("the trait `", print_def_path(trait_def_id, &[]), "` is object-safe")
|
||||
ty::PredicateKind::DynCompatible(trait_def_id) => {
|
||||
p!("the trait `", print_def_path(trait_def_id, &[]), "` is dyn-compatible")
|
||||
}
|
||||
ty::PredicateKind::ConstEquate(c1, c2) => {
|
||||
p!("the constant `", print(c1), "` equals `", print(c2), "`")
|
||||
|
||||
@@ -1602,7 +1602,7 @@ impl<'tcx> ExplicitSelf<'tcx> {
|
||||
/// `Other`.
|
||||
/// This is mainly used to require the arbitrary_self_types feature
|
||||
/// in the case of `Other`, to improve error messages in the common cases,
|
||||
/// and to make `Other` non-object-safe.
|
||||
/// and to make `Other` dyn-incompatible.
|
||||
///
|
||||
/// Examples:
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user