Skip to content

Commit ec039bd

Browse files
committed
Auto merge of #79336 - camelid:rename-feature-oibit-to-auto, r=oli-obk
Rename `optin_builtin_traits` to `auto_traits` They were originally called "opt-in, built-in traits" (OIBITs), but people realized that the name was too confusing and a mouthful, and so they were renamed to just "auto traits". The feature flag's name wasn't updated, though, so that's what this PR does. There are some other spots in the compiler that still refer to OIBITs, but I don't think changing those now is worth it since they are internal and not particularly relevant to this PR. Also see <https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/opt-in.2C.20built-in.20traits.20(auto.20traits).20feature.20name>. r? `@oli-obk` (feel free to re-assign if you're not the right reviewer for this)
2 parents b387f62 + 82dc99b commit ec039bd

File tree

60 files changed

+98
-82
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+98
-82
lines changed

compiler/rustc_ast_passes/src/feature_gate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
370370
ast::ItemKind::Trait(ast::IsAuto::Yes, ..) => {
371371
gate_feature_post!(
372372
&self,
373-
optin_builtin_traits,
373+
auto_traits,
374374
i.span,
375375
"auto traits are experimental and possibly buggy"
376376
);

compiler/rustc_codegen_cranelift/example/mini_core.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(
22
no_core, lang_items, intrinsics, unboxed_closures, type_ascription, extern_types,
3-
untagged_unions, decl_macro, rustc_attrs, transparent_unions, optin_builtin_traits,
3+
untagged_unions, decl_macro, rustc_attrs, transparent_unions, auto_traits,
44
thread_local,
55
)]
66
#![no_core]

compiler/rustc_data_structures/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
#![feature(fn_traits)]
1616
#![feature(int_bits_const)]
1717
#![feature(min_specialization)]
18-
#![feature(optin_builtin_traits)]
18+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
19+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
1920
#![feature(nll)]
2021
#![feature(allow_internal_unstable)]
2122
#![feature(hash_raw_entry)]

compiler/rustc_error_codes/src/error_codes/E0198.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ unsafe.
1616
This will compile:
1717

1818
```ignore (ignore auto_trait future compatibility warning)
19-
#![feature(optin_builtin_traits)]
19+
#![feature(auto_traits)]
2020
2121
struct Foo;
2222

compiler/rustc_error_codes/src/error_codes/E0321.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ or enum type.
44
Erroneous code example:
55

66
```compile_fail,E0321
7-
#![feature(optin_builtin_traits)]
7+
#![feature(auto_traits)]
88
99
struct Foo;
1010

compiler/rustc_error_codes/src/error_codes/E0567.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Generics have been used on an auto trait.
33
Erroneous code example:
44

55
```compile_fail,E0567
6-
#![feature(optin_builtin_traits)]
6+
#![feature(auto_traits)]
77
88
auto trait Generic<T> {} // error!
99
# fn main() {}
@@ -16,7 +16,7 @@ parameters.
1616
To fix this issue, just remove the generics:
1717

1818
```
19-
#![feature(optin_builtin_traits)]
19+
#![feature(auto_traits)]
2020
2121
auto trait Generic {} // ok!
2222
# fn main() {}

compiler/rustc_error_codes/src/error_codes/E0568.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ A super trait has been added to an auto trait.
33
Erroneous code example:
44

55
```compile_fail,E0568
6-
#![feature(optin_builtin_traits)]
6+
#![feature(auto_traits)]
77
88
auto trait Bound : Copy {} // error!
99
@@ -18,7 +18,7 @@ all the existing types could implement `Bound` because very few of them have the
1818
To fix this issue, just remove the super trait:
1919

2020
```
21-
#![feature(optin_builtin_traits)]
21+
#![feature(auto_traits)]
2222
2323
auto trait Bound {} // ok!
2424

compiler/rustc_feature/src/active.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,6 @@ declare_features! (
149149
/// Allows using the `#[linkage = ".."]` attribute.
150150
(active, linkage, "1.0.0", Some(29603), None),
151151

152-
/// Allows features specific to OIBIT (auto traits).
153-
(active, optin_builtin_traits, "1.0.0", Some(13231), None),
154-
155152
/// Allows using `box` in patterns (RFC 469).
156153
(active, box_patterns, "1.0.0", Some(29641), None),
157154

@@ -215,6 +212,10 @@ declare_features! (
215212
/// purpose as `#[allow_internal_unstable]`.
216213
(active, rustc_allow_const_fn_unstable, "1.49.0", Some(69399), None),
217214

215+
/// Allows features specific to auto traits.
216+
/// Renamed from `optin_builtin_traits`.
217+
(active, auto_traits, "1.50.0", Some(13231), None),
218+
218219
// no-tracking-issue-end
219220

220221
// -------------------------------------------------------------------------

compiler/rustc_feature/src/removed.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ declare_features! (
7171
/// Allows using custom attributes (RFC 572).
7272
(removed, custom_attribute, "1.0.0", Some(29642), None,
7373
Some("removed in favor of `#![register_tool]` and `#![register_attr]`")),
74+
/// Allows features specific to OIBIT (now called auto traits).
75+
/// Renamed to `auto_traits`.
76+
(removed, optin_builtin_traits, "1.0.0", Some(13231), None,
77+
Some("renamed to `auto_traits`")),
7478
(removed, pushpop_unsafe, "1.2.0", None, None, None),
7579
(removed, needs_allocator, "1.4.0", Some(27389), None,
7680
Some("subsumed by `#![feature(allocator_internals)]`")),
@@ -113,7 +117,6 @@ declare_features! (
113117
Some("removed in favor of `#![feature(marker_trait_attr)]`")),
114118
/// Allows `#[no_debug]`.
115119
(removed, no_debug, "1.43.0", Some(29721), None, Some("removed due to lack of demand")),
116-
117120
/// Allows comparing raw pointers during const eval.
118121
(removed, const_compare_raw_pointers, "1.46.0", Some(53020), None,
119122
Some("cannot be allowed in const eval in any meaningful way")),

compiler/rustc_middle/src/mir/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ pub struct LocalDecl<'tcx> {
811811
/// after typeck.
812812
///
813813
/// This should be sound because the drop flags are fully algebraic, and
814-
/// therefore don't affect the OIBIT or outlives properties of the
814+
/// therefore don't affect the auto-trait or outlives properties of the
815815
/// generator.
816816
pub internal: bool,
817817

compiler/rustc_middle/src/traits/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ pub enum Reveal {
7171
/// be observable directly by the user, `Reveal::All`
7272
/// should not be used by checks which may expose
7373
/// type equality or type contents to the user.
74-
/// There are some exceptions, e.g., around OIBITS and
74+
/// There are some exceptions, e.g., around auto traits and
7575
/// transmute-checking, which expose some details, but
7676
/// not the whole concrete type of the `impl Trait`.
7777
All,

compiler/rustc_mir_build/src/build/expr/as_rvalue.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
9696
ExprKind::Box { value } => {
9797
let value = this.hir.mirror(value);
9898
// The `Box<T>` temporary created here is not a part of the HIR,
99-
// and therefore is not considered during generator OIBIT
99+
// and therefore is not considered during generator auto-trait
100100
// determination. See the comment about `box` at `yield_in_scope`.
101101
let result = this.local_decls.push(LocalDecl::new(expr.ty, expr_span).internal());
102102
this.cfg.push(

compiler/rustc_span/src/symbol.rs

+1
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ symbols! {
285285
attr_literals,
286286
attributes,
287287
augmented_assignments,
288+
auto_traits,
288289
automatically_derived,
289290
avx512_target_feature,
290291
await_macro,

library/alloc/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@
112112
#![feature(never_type)]
113113
#![feature(nll)]
114114
#![feature(nonnull_slice_from_raw_parts)]
115-
#![feature(optin_builtin_traits)]
115+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
116+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
116117
#![feature(or_patterns)]
117118
#![feature(pattern)]
118119
#![feature(ptr_internals)]

library/core/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@
117117
#![feature(nll)]
118118
#![feature(exhaustive_patterns)]
119119
#![feature(no_core)]
120-
#![feature(optin_builtin_traits)]
120+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
121+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
121122
#![feature(or_patterns)]
122123
#![feature(prelude_import)]
123124
#![feature(repr_simd, platform_intrinsics)]

library/proc_macro/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
#![feature(extern_types)]
2929
#![feature(in_band_lifetimes)]
3030
#![feature(negative_impls)]
31-
#![feature(optin_builtin_traits)]
31+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
32+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
3233
#![feature(restricted_std)]
3334
#![feature(rustc_attrs)]
3435
#![feature(min_specialization)]

library/rtstartup/rsbegin.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@
99
// headers or footers.
1010
//
1111
// Note that the actual module entry point is located in the C runtime startup
12-
// object (usually called `crtX.o), which then invokes initialization callbacks
12+
// object (usually called `crtX.o`), which then invokes initialization callbacks
1313
// of other runtime components (registered via yet another special image section).
1414

15-
#![feature(no_core, lang_items, optin_builtin_traits)]
15+
#![feature(no_core)]
16+
#![feature(lang_items)]
17+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
18+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
1619
#![crate_type = "rlib"]
1720
#![no_core]
1821
#![allow(non_camel_case_types)]

library/rtstartup/rsend.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// See rsbegin.rs for details.
22

3-
#![feature(no_core, lang_items, optin_builtin_traits)]
3+
#![feature(no_core)]
4+
#![feature(lang_items)]
5+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
6+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
47
#![crate_type = "rlib"]
58
#![no_core]
69

library/std/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@
286286
#![feature(nll)]
287287
#![feature(nonnull_slice_from_raw_parts)]
288288
#![feature(once_cell)]
289-
#![feature(optin_builtin_traits)]
289+
#![cfg_attr(bootstrap, feature(optin_builtin_traits))]
290+
#![cfg_attr(not(bootstrap), feature(auto_traits))]
290291
#![feature(or_patterns)]
291292
#![feature(panic_info_message)]
292293
#![feature(panic_internals)]

src/doc/unstable-book/src/language-features/optin-builtin-traits.md renamed to src/doc/unstable-book/src/language-features/auto-traits.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# `optin_builtin_traits`
1+
# `auto_traits`
22

33
The tracking issue for this feature is [#13231]
44

55
[#13231]: https://github.com/rust-lang/rust/issues/13231
66

77
----
88

9-
The `optin_builtin_traits` feature gate allows you to define auto traits.
9+
The `auto_traits` feature gate allows you to define auto traits.
1010

1111
Auto traits, like [`Send`] or [`Sync`] in the standard library, are marker traits
1212
that are automatically implemented for every type, unless the type, or a type it contains,
@@ -24,7 +24,7 @@ Example:
2424

2525
```rust
2626
#![feature(negative_impls)]
27-
#![feature(optin_builtin_traits)]
27+
#![feature(auto_traits)]
2828

2929
auto trait Valid {}
3030

src/test/pretty/auto-trait.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
// pp-exact
44

src/test/run-make-fulldeps/simd-ffi/simd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#![crate_type = "lib"]
33
// we can compile to a variety of platforms, because we don't need
44
// cross-compiled standard libraries.
5-
#![feature(no_core, optin_builtin_traits)]
5+
#![feature(no_core, auto_traits)]
66
#![no_core]
77
#![feature(repr_simd, simd_ffi, link_llvm_intrinsics, lang_items, rustc_attrs)]
88

src/test/run-make-fulldeps/target-specs/foo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(lang_items, no_core, optin_builtin_traits)]
1+
#![feature(lang_items, no_core, auto_traits)]
22
#![no_core]
33

44
#[lang="copy"]

src/test/rustdoc/auto-traits.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// aux-build:auto-traits.rs
22

3-
#![feature(optin_builtin_traits)]
3+
#![feature(auto_traits)]
44

55
#![crate_name = "foo"]
66

src/test/rustdoc/auto_aliases.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
// @has auto_aliases/trait.Bar.html '//h3[@aliases="auto_aliases::Foo"]' 'impl Bar for Foo'
44
pub struct Foo;
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
pub unsafe auto trait Bar {}

src/test/rustdoc/auxiliary/rustdoc-default-impl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
pub mod bar {
44
use std::marker;
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

3-
pub auto trait AnOibit {}
3+
pub auto trait AnAutoTrait {}

src/test/rustdoc/impl-parts-crosscrate.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ pub struct Bar<T> { t: T }
1212
// full impl string. Instead, just make sure something from each part
1313
// is mentioned.
1414

15-
// @has implementors/rustdoc_impl_parts_crosscrate/trait.AnOibit.js Bar
15+
// @has implementors/rustdoc_impl_parts_crosscrate/trait.AnAutoTrait.js Bar
1616
// @has - Send
17-
// @has - !AnOibit
17+
// @has - !AnAutoTrait
1818
// @has - Copy
19-
impl<T: Send> !rustdoc_impl_parts_crosscrate::AnOibit for Bar<T>
19+
impl<T: Send> !rustdoc_impl_parts_crosscrate::AnAutoTrait for Bar<T>
2020
where T: Copy {}

src/test/rustdoc/impl-parts.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#![feature(negative_impls)]
2-
#![feature(optin_builtin_traits)]
2+
#![feature(auto_traits)]
33

4-
pub auto trait AnOibit {}
4+
pub auto trait AnAutoTrait {}
55

66
pub struct Foo<T> { field: T }
77

88
// @has impl_parts/struct.Foo.html '//*[@class="impl"]//code' \
9-
// "impl<T: Clone> !AnOibit for Foo<T> where T: Sync,"
10-
// @has impl_parts/trait.AnOibit.html '//*[@class="item-list"]//code' \
11-
// "impl<T: Clone> !AnOibit for Foo<T> where T: Sync,"
12-
impl<T: Clone> !AnOibit for Foo<T> where T: Sync {}
9+
// "impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync,"
10+
// @has impl_parts/trait.AnAutoTrait.html '//*[@class="item-list"]//code' \
11+
// "impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync,"
12+
impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync {}

src/test/rustdoc/synthetic_auto/crate-local.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
pub auto trait Banana {}
44

src/test/ui/async-await/issue-64130-3-other.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33
// edition:2018
44

src/test/ui/auto-traits/auto-trait-validation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22

33
auto trait Generic<T> {}
44
//~^ auto traits cannot have generic parameters [E0567]

src/test/ui/auto-traits/auto-traits.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-pass
22
#![allow(unused_doc_comments)]
3-
#![feature(optin_builtin_traits)]
3+
#![feature(auto_traits)]
44
#![feature(negative_impls)]
55

66
auto trait Auto {}

src/test/ui/auto-traits/issue-23080-2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33

44
unsafe auto trait Trait {

src/test/ui/auto-traits/issue-23080.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33

44
unsafe auto trait Trait {

src/test/ui/auto-traits/typeck-auto-trait-no-supertraits-2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33

44
auto trait Magic : Sized where Option<Self> : Magic {} //~ ERROR E0568

src/test/ui/auto-traits/typeck-auto-trait-no-supertraits.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
// println!("{:?} {:?}", a, b);
2323
// }
2424

25-
#![feature(optin_builtin_traits)]
25+
#![feature(auto_traits)]
2626
#![feature(negative_impls)]
2727

2828
auto trait Magic: Copy {} //~ ERROR E0568

src/test/ui/auto-traits/typeck-default-trait-impl-constituent-types-2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33

44
auto trait MyTrait {}

src/test/ui/auto-traits/typeck-default-trait-impl-constituent-types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(optin_builtin_traits)]
1+
#![feature(auto_traits)]
22
#![feature(negative_impls)]
33

44
auto trait MyTrait {}

0 commit comments

Comments
 (0)