Ralf Jung
56ee492a6e
move strict provenance lints to new feature gate, remove old feature gates
2024-10-21 15:22:17 +01:00
Trevor Gross
19f6c17df4
Stabilize const_option
...
This makes the following API stable in const contexts:
impl<T> Option<T> {
pub const fn as_mut(&mut self) -> Option<&mut T>;
pub const fn expect(self, msg: &str) -> T;
pub const fn unwrap(self) -> T;
pub const unsafe fn unwrap_unchecked(self) -> T;
pub const fn take(&mut self) -> Option<T>;
pub const fn replace(&mut self, value: T) -> Option<T>;
}
impl<T> Option<&T> {
pub const fn copied(self) -> Option<T>
where T: Copy;
}
impl<T> Option<&mut T> {
pub const fn copied(self) -> Option<T>
where T: Copy;
}
impl<T, E> Option<Result<T, E>> {
pub const fn transpose(self) -> Result<Option<T>, E>
}
impl<T> Option<Option<T>> {
pub const fn flatten(self) -> Option<T>;
}
The following functions make use of the unstable
`const_precise_live_drops` feature:
- `expect`
- `unwrap`
- `unwrap_unchecked`
- `transpose`
- `flatten`
Fixes: <https://github.com/rust-lang/rust/issues/67441 >
2024-10-12 17:07:13 -04:00
Ralf Jung
c4ce8c114b
make InterpResult a dedicated type to avoid accidentally discarding the error
2024-10-01 21:45:35 +02:00
Josh Stone
0999b019f8
Dogfood feature(file_buffered)
2024-09-24 14:25:16 -07:00
Nicholas Nethercote
acb832d640
Use associative type defaults in {Layout,FnAbi}OfHelpers
.
...
This avoids some repetitive boilerplate code.
2024-09-17 10:25:06 +10:00
Boxy
0091b8ab2a
update cfgs
2024-09-05 17:24:01 +01:00
Nicholas Nethercote
938daf6033
Add warn(unreachable_pub)
to rustc_middle
.
...
I am surprised the diff is so small for this enormous crate.
2024-08-29 20:13:06 +10:00
Jubilee
9d5f794312
Rollup merge of #129401 - workingjubilee:partial-initialization-of-stabilization, r=dtolnay,joboet
...
Partially stabilize `feature(new_uninit)`
Finished comment period: https://github.com/rust-lang/rust/issues/63291#issuecomment-2183022955
The following API has been stabilized from https://github.com/rust-lang/rust/issues/63291
```rust
impl<T> Box<T> { pub fn new_uninit() -> Box<MaybeUninit<T>> {…} }
impl<T> Rc<T> { pub fn new_uninit() -> Rc<MaybeUninit<T>> {…} }
impl<T> Arc<T> { pub fn new_uninit() -> Arc<MaybeUninit<T>> {…} }
impl<T> Box<[T]> { pub fn new_uninit_slice(len: usize) -> Box<[MaybeUninit<T>]> {…} }
impl<T> Rc<[T]> { pub fn new_uninit_slice(len: usize) -> Rc<[MaybeUninit<T>]> {…} }
impl<T> Arc<[T]> { pub fn new_uninit_slice(len: usize) -> Arc<[MaybeUninit<T>]> {…} }
impl<T> Box<MaybeUninit<T>> { pub unsafe fn assume_init(self) -> Box<T> {…} }
impl<T> Box<[MaybeUninit<T>]> { pub unsafe fn assume_init(self) -> Box<[T]> {…} }
impl<T> Rc<MaybeUninit<T>> { pub unsafe fn assume_init(self) -> Rc<T> {…} }
impl<T> Rc<[MaybeUninit<T>]> { pub unsafe fn assume_init(self) -> Rc<[T]> {…} }
impl<T> Arc<MaybeUninit<T>> { pub unsafe fn assume_init(self) -> Arc<T> {…} }
impl<T> Arc<[MaybeUninit<T>]> { pub unsafe fn assume_init(self) -> Arc<[T]> {…} }
```
The remaining API is split between new issues
- `new_zeroed_alloc`: https://github.com/rust-lang/rust/issues/129396
- `box_uninit_write`: https://github.com/rust-lang/rust/issues/129397
All relevant code is thus either stabilized or split out of that issue, so this closes #63291 as, with the FCP concluded, that issue has served its purpose.
try-job: x86_64-rust-for-linux
2024-08-28 19:12:52 -07:00
Jubilee Young
2535a0f776
compiler: Remove feature(new_uninit)
2024-08-27 10:17:05 -07:00
Michael Goulet
38e62b9841
Use unsafe extern blocks throughout the compiler
2024-08-26 19:51:05 -04:00
Ralf Jung
58dcd1c2e6
use the new Box methods in the interpreter
2024-08-14 14:32:17 +02:00
Nadrieril
c256de2253
Update std and compiler
2024-08-10 12:07:17 +02:00
Matthias Krüger
efc3fdc74d
Rollup merge of #125505 - aDotInTheVoid:middle-idl, r=pnkfelix
...
Add intra-doc-links to rustc_middle crate-level docs.
Makes it slightly faster to find these modules, as you don't need to hunt for them in the big list.
2024-06-05 18:21:09 +02:00
Alona Enraght-Moony
9f8b1caf29
Add intra-doc-links to rustc_middle crate-level docs.
2024-05-24 17:17:25 +00:00
Nicholas Nethercote
e9a59dbed8
Remove #[macro_use] extern crate tracing
from rustc_middle
.
2024-05-23 18:02:40 +10:00
Nicholas Nethercote
3ac816a1ca
Sort rustc_middle
attributes.
...
As is already done in several other crates, such as `rustc_errors`.
2024-05-21 14:56:57 +10:00
Nicholas Nethercote
ac847b2583
Remove unused features from rustc_middle
.
2024-05-21 14:56:57 +10:00
Mark Rousskov
a64f941611
Step bootstrap cfgs
2024-05-01 22:19:11 -04:00
Nicholas Nethercote
52e9a23bdc
Remove extern crate smallvec
from a couple of crates.
2024-04-29 18:47:54 +10:00
Nicholas Nethercote
1ab34f063b
Remove extern crate bitflags
from a couple of crates.
2024-04-29 18:47:54 +10:00
Nicholas Nethercote
7418aa1a07
Remove extern crate rustc_data_structures
from numerous crates.
2024-04-29 18:45:14 +10:00
Nicholas Nethercote
6ce258f657
Remove extern crate rustc_macros
from rustc_middle
.
2024-04-29 11:19:16 +10:00
Gary Guo
94c1920497
Stabilise inline_const
2024-04-24 13:12:25 +01:00
Oli Scherer
aef0f4024a
Error on using yield
without also using #[coroutine]
on the closure
...
And suggest adding the `#[coroutine]` to the closure
2024-04-24 08:05:29 +00:00
Markus Reiter
33e68aadc9
Stabilize generic NonZero
.
2024-04-22 18:48:47 +02:00
Mark Rousskov
02f1930595
step cfgs
2024-03-20 08:49:13 -04:00
Oli Scherer
e91084180e
Make span_bug panic site useful again
2024-03-19 09:19:12 +00:00
Michael Goulet
c63f3feb0f
Stabilize associated type bounds
2024-03-08 20:56:25 +00:00
Matthias Krüger
26cb6c7287
Rollup merge of #120742 - Nadrieril:use-min_exh_pats, r=compiler-errors
...
mark `min_exhaustive_patterns` as complete
This is step 1 and 2 of my [proposal](https://github.com/rust-lang/rust/issues/119612#issuecomment-1918097361 ) to move `min_exhaustive_patterns` forward. The vast majority of in-tree use cases of `exhaustive_patterns` are covered by `min_exhaustive_patterns`. There are a few cases that still require `exhaustive_patterns` in tests and they're all behind references.
r? ``@ghost``
2024-02-23 17:02:03 +01:00
Markus Reiter
746a58d435
Use generic NonZero
internally.
2024-02-15 08:09:42 +01:00
Nadrieril
9dd6eda778
Prefer min_exhaustive_patterns
in compiler
2024-02-13 16:45:53 +01:00
bors
f4cfd87202
Auto merge of #120676 - Mark-Simulacrum:bootstrap-bump, r=clubby789
...
Bump bootstrap compiler to just-built 1.77 beta
https://forge.rust-lang.org/release/process.html#master-bootstrap-update-t-2-day-tuesday
2024-02-09 18:09:02 +00:00
Matthias Krüger
46a0448405
Rollup merge of #120693 - nnethercote:invert-diagnostic-lints, r=davidtwco
...
Invert diagnostic lints.
That is, change `diagnostic_outside_of_impl` and `untranslatable_diagnostic` from `allow` to `deny`, because more than half of the compiler has been converted to use translated diagnostics.
This commit removes more `deny` attributes than it adds `allow` attributes, which proves that this change is warranted.
r? ````@davidtwco````
2024-02-09 14:41:50 +01:00
Mark Rousskov
9a5034a20e
Step all bootstrap cfgs forward
...
This also takes care of other bootstrap-related changes.
2024-02-08 07:44:34 -05:00
klensy
c5e6df0c78
MirPass: make name more const
2024-02-07 11:38:28 +03:00
Nicholas Nethercote
0ac1195ee0
Invert diagnostic lints.
...
That is, change `diagnostic_outside_of_impl` and
`untranslatable_diagnostic` from `allow` to `deny`, because more than
half of the compiler has be converted to use translated diagnostics.
This commit removes more `deny` attributes than it adds `allow`
attributes, which proves that this change is warranted.
2024-02-06 13:12:33 +11:00
clubby789
fd29f74ff8
Remove unused features
2024-01-25 14:01:33 +00:00
Oli Scherer
9a20cf1697
Revert "Auto merge of #118133 - Urgau:stabilize_trait_upcasting, r=WaffleLapkin"
...
This reverts commit 6d2b84b3ed
, reversing
changes made to 73bc12199e
.
2024-01-22 14:24:31 +00:00
Pietro Albini
f9f5840eb4
update cfg(bootstrap)s
2023-12-22 11:14:11 +01:00
Nicholas Nethercote
57cd5e6551
Use rustc_fluent_macro::fluent_messages!
directly.
...
Currently we always do this:
```
use rustc_fluent_macro::fluent_messages;
...
fluent_messages! { "./example.ftl" }
```
But there is no need, we can just do this everywhere:
```
rustc_fluent_macro::fluent_messages! { "./example.ftl" }
```
which is shorter.
2023-11-26 08:38:40 +11:00
Nicholas Nethercote
a733082be9
Avoid need for {D,Subd}iagnosticMessage
imports.
...
The `fluent_messages!` macro produces uses of
`crate::{D,Subd}iagnosticMessage`, which means that every crate using
the macro must have this import:
```
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
```
This commit changes the macro to instead use
`rustc_errors::{D,Subd}iagnosticMessage`, which avoids the need for the
imports.
2023-11-26 08:38:00 +11:00
Urgau
4c2d6de70e
Stabilize RFC3324 dyn upcasting coercion
...
Aka trait_upcasting feature.
And also adjust the `deref_into_dyn_supertrait` lint.
2023-11-22 13:56:36 +01:00
Mark Rousskov
db3e2bacb6
Bump cfg(bootstrap)s
2023-11-15 19:41:28 -05:00
bors
85b8450466
Auto merge of #116866 - slanterns:inspect-stabilize, r=BurntSushi
...
Stabilize `result_option_inspect`
This PR stabilizes `result_option_inspect`:
```rust
// core::option
impl Option<T> {
pub fn inspect<F: FnOnce(&T)>(self, f: F) -> Self;
}
// core::result
impl Result<T, E> {
pub fn inspect<F: FnOnce(&T)>(self, f: F) -> Self;
pub fn inspect_err<F: FnOnce(&E)>(self, f: F) -> Self;
}
```
<br>
Tracking issue: https://github.com/rust-lang/rust/issues/91345 .
Implementation PR: https://github.com/rust-lang/rust/pull/91346 .
Closes https://github.com/rust-lang/rust/issues/91345 .
2023-11-13 19:46:18 +00:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Slanterns
ed512e91d0
Remove #![feature(result_option_inspect)]
from the compiler
2023-10-18 07:35:57 +08:00
Michael Howell
c6e6ecb1af
rustdoc: remove rust logo from non-Rust crates
2023-10-08 20:17:53 -07:00
Oli Scherer
2157f31731
Add a way to decouple the implementation and the declaration of a TyCtxt method.
2023-09-22 09:23:15 +00:00
Mark Rousskov
0a916062aa
Bump cfg(bootstrap)
2023-08-23 20:05:14 -04:00
Mara Bos
dc3cbc1e56
Stabilize thread local cell methods.
2023-08-10 17:33:40 +02:00