Auto merge of #133634 - matthiaskrgr:rollup-v7m4j2k, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #131323 (Support `clobber_abi` in AVR inline assembly)
 - #131718 ([rustdoc] Change impl items indent)
 - #133565 (chore: fix 404 status URL)
 - #133575 (Fix typo in RELEASES.md)
 - #133577 (Document s390x machine access via community cloud)
 - #133584 (Update more 2024 tests to remove -Zunstable-options)
 - #133592 (Misc: better instructions for envrc, ignore `/build` instead of `build/`)

r? `@ghost`
`@rustbot` modify labels: rollup
This commit is contained in:
bors
2024-11-29 17:06:37 +00:00
94 changed files with 281 additions and 212 deletions
+1 -2
View File
@@ -46,8 +46,7 @@ no_llvm_build
/inst/
/llvm/
/mingw-build/
build/
!/compiler/rustc_mir_build/src/build/
/build
/build-rust-analyzer/
/dist/
/unicode-downloads
+1 -1
View File
@@ -43,7 +43,7 @@ Libraries
- [Document that `catch_unwind` can deal with foreign exceptions without UB, although the exact behavior is unspecified.](https://github.com/rust-lang/rust/pull/128321)
- [Implement `Default` for `HashMap`/`HashSet` iterators that don't already have it.](https://github.com/rust-lang/rust/pull/128711)
- [Bump Unicode to version 16.0.0.](https://github.com/rust-lang/rust/pull/130183)
- [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.](https://github.com/rust-lang/rust/pull/130229).
- [Change documentation of `ptr::add`/`sub` to not claim equivalence with `offset`.](https://github.com/rust-lang/rust/pull/130229)
<a id="1.83.0-Stabilized-APIs"></a>
@@ -231,7 +231,7 @@ pub(crate) fn as_rvalue(
if range.start <= range.end { BinOp::BitAnd } else { BinOp::BitOr };
let mut comparer = |range: u128, bin_op: BinOp| -> Place<'tcx> {
// We can use `ty::TypingEnv::fully_monomorphized()`` here
// We can use `ty::TypingEnv::fully_monomorphized()` here
// as we only need it to compute the layout of a primitive.
let range_val = Const::from_bits(
this.tcx,
+6 -1
View File
@@ -105,7 +105,12 @@ pub fn supported_types(
#error = ["SP", "SPL", "SPH"] =>
"the stack pointer cannot be used as an operand for inline asm",
#error = ["r0", "r1", "r1r0"] =>
"r0 and r1 are not available due to an issue in LLVM",
"LLVM reserves r0 (scratch register) and r1 (zero register)",
// If this changes within LLVM, the compiler might use the registers
// in the future. This must be reflected in the set of clobbered
// registers, else the clobber ABI implementation is *unsound*, as
// this generates invalid code (register is not marked as clobbered
// but may change the register content).
}
}
+22
View File
@@ -928,6 +928,7 @@ pub enum InlineAsmClobberAbi {
AArch64,
AArch64NoX18,
Arm64EC,
Avr,
RiscV,
RiscVE,
LoongArch,
@@ -986,6 +987,10 @@ pub fn parse(
}),
_ => Err(&["C", "system", "efiapi"]),
},
InlineAsmArch::Avr => match name {
"C" | "system" => Ok(InlineAsmClobberAbi::Avr),
_ => Err(&["C", "system"]),
},
InlineAsmArch::LoongArch64 => match name {
"C" | "system" => Ok(InlineAsmClobberAbi::LoongArch),
_ => Err(&["C", "system"]),
@@ -1133,6 +1138,23 @@ macro_rules! clobbered_regs {
d24, d25, d26, d27, d28, d29, d30, d31,
}
},
InlineAsmClobberAbi::Avr => clobbered_regs! {
Avr AvrInlineAsmReg {
// The list of "Call-Used Registers" according to
// https://gcc.gnu.org/wiki/avr-gcc#Call-Used_Registers
// Clobbered registers available in inline assembly
r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r30, r31,
// As per the AVR-GCC-ABI documentation linked above, the R0
// register is a clobbered register as well. Since we don't
// allow the usage of R0 in inline assembly, nothing has to
// be done here.
// Likewise, the T-flag in the SREG should be clobbered, but
// this is not necessary to be listed here, since the SREG
// is considered clobbered anyways unless `preserve_flags`
// is used.
}
},
InlineAsmClobberAbi::RiscV => clobbered_regs! {
RiscV RiscVInlineAsmReg {
// ra
@@ -16,7 +16,7 @@ BE8 architecture is the default big-endian architecture for Arm since [Armv6](ht
The target is cross-compiled. This target supports `std` in the normal way (indeed only nominal changes are required from the standard Arm configuration).
## Target definition
The target definition can be seen [here](https://github.com/rust-lang/rust/tree/master/compiler/rustc_target/src/spec/armeb_unknown_linux_gnueabi.rs). In particular, it should be noted that the `features` specify that this target is built for the Armv8 core. Though this can likely be modified as required.
The target definition can be seen [here](https://github.com/rust-lang/rust/blob/master/compiler/rustc_target/src/spec/targets/armeb_unknown_linux_gnueabi.rs). In particular, it should be noted that the `features` specify that this target is built for the Armv8 core. Though this can likely be modified as required.
## Building the target
Because it is Tier 3, rust does not yet ship pre-compiled artifacts for this target.
@@ -64,6 +64,22 @@ There are no special requirements for testing and running the target.
For testing cross builds on the host, please refer to the "Cross-compilation
toolchains and C code" section below.
If you want to do native testing but do not have your own s390x
machine, there are several options how to get access to one:
* The [IBM LinuxONE Community Cloud][cloud-community] provides a
self-service portal where you can create s390x virtual machine
instances. These are intended for temporary use (limited to 120 days).
* The [IBM LinuxONE Open Source Cloud][cloud-opensource] provides
permanent access to s390x machines. This requires approval by IBM,
which will normally be granted if you're planning to use the machine
to work on an open-source project that is relevant to the IBM Z
ecosystem - the Rust compiler would certainly qualify.
[cloud-community]: https://linuxone.cloud.marist.edu/
[cloud-opensource]: https://community.ibm.com/zsystems/form/l1cc-oss-vm-request/
## Cross-compilation toolchains and C code
Rust code built using the target is compatible with C code compiled with
+35 -15
View File
@@ -36,6 +36,8 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
--button-border-radius: 2px;
--toolbar-button-border-radius: 6px;
--code-block-border-radius: 6px;
--impl-items-indent: 0.3em;
--docblock-indent: 24px;
}
/* See FiraSans-LICENSE.txt for the Fira Sans license. */
@@ -909,7 +911,7 @@ both the code example and the line numbers, so we need to remove the radius in t
.docblock h6 { font-size: 0.875rem; }
.docblock {
margin-left: 24px;
margin-left: var(--docblock-indent);
position: relative;
}
@@ -982,7 +984,11 @@ div.where {
.item-info {
display: block;
margin-left: 24px;
margin-left: var(--docblock-indent);
}
.impl-items > .item-info {
/* Margin of docblocks + margin of impl block items. */
margin-left: calc(var(--docblock-indent) + var(--impl-items-indent));
}
.item-info code {
@@ -2166,6 +2172,15 @@ details.toggle > summary:not(.hideme)::before {
left: -24px;
}
/* We indent items of an impl block to have a visual marker that these items are part
of this impl block. */
.impl-items > *:not(.item-info),
/* We also indent the first top doc comment the same to still keep an indent on the
doc block while aligning it with the impl block items. */
.implementors-toggle > .docblock {
margin-left: var(--impl-items-indent);
}
details.big-toggle > summary:not(.hideme)::before {
left: -34px;
top: 9px;
@@ -2255,6 +2270,10 @@ If you update this line, then you also need to update the line with the same war
in src-script.js and main.js
*/
@media (max-width: 700px) {
:root {
--impl-items-indent: 0.7em;
}
/* When linking to an item with an `id` (for instance, by clicking a link in the sidebar,
or visiting a URL with a fragment like `#method.new`, we don't want the item to be obscured
by the topbar. Anything with an `id` gets scroll-margin-top equal to .mobile-topbar's size.
@@ -2454,19 +2473,20 @@ in src-script.js and main.js
padding-top: 0;
}
/* Position of the "[-]" element. */
details.toggle:not(.top-doc) > summary, .impl-items > section {
details.implementors-toggle:not(.top-doc) > summary {
margin-left: 10px;
}
.impl-items > details.toggle > summary:not(.hideme)::before,
#main-content > details.toggle:not(.top-doc) > summary::before,
#main-content > div > details.toggle > summary::before {
left: -11px;
.impl-items > details.toggle > summary:not(.hideme)::before {
left: -20px;
}
/* Align summary-nested and unnested item-info gizmos. */
summary > .item-info {
margin-left: 10px;
}
.impl-items > .item-info {
margin-left: 34px;
margin-left: calc(var(--impl-items-indent) + 10px);
}
.src nav.sub {
@@ -2500,24 +2520,24 @@ in src-script.js and main.js
}
@media print {
:root {
--docblock-indent: 0;
}
nav.sidebar, nav.sub, .out-of-band, a.src, #copy-path,
details.toggle[open] > summary::before, details.toggle > summary::before,
details.toggle.top-doc > summary {
display: none;
}
.docblock {
margin-left: 0;
}
main {
padding: 10px;
}
}
@media (max-width: 464px) {
.docblock {
margin-left: 12px;
:root {
--docblock-indent: 12px;
}
.docblock code {
+1 -1
View File
@@ -1,7 +1,7 @@
# If you want to use this as an .envrc file to create a shell with necessery components
# to develop rustc, use the following command in the root of the rusr checkout:
#
# ln -s ./src/tools/nix-dev-shell/envrc-flake ./.envrc && echo .envrc >> .git/info/exclude
# ln -s ./src/tools/nix-dev-shell/envrc-flake ./.envrc && nix flake update --flake ./src/tools/nix-dev-shell && echo .envrc >> .git/info/exclude
if nix flake show path:./src/tools/nix-dev-shell &> /dev/null; then
use flake path:./src/tools/nix-dev-shell
+43
View File
@@ -0,0 +1,43 @@
//@ assembly-output: emit-asm
//@ compile-flags: --target avr-unknown-gnu-atmega328
//@ needs-llvm-components: avr
#![crate_type = "rlib"]
#![feature(no_core, rustc_attrs, lang_items, asm_experimental_arch)]
#![no_core]
#[lang = "sized"]
trait Sized {}
#[rustc_builtin_macro]
macro_rules! asm {
() => {};
}
// CHECK-LABEL: @sreg_is_clobbered
// CHECK: void asm sideeffect "", "~{sreg}"()
#[no_mangle]
pub unsafe fn sreg_is_clobbered() {
asm!("", options(nostack, nomem));
}
// CHECK-LABEL: @sreg_is_not_clobbered_if_preserve_flags_is_used
// CHECK: void asm sideeffect "", ""()
#[no_mangle]
pub unsafe fn sreg_is_not_clobbered_if_preserve_flags_is_used() {
asm!("", options(nostack, nomem, preserves_flags));
}
// CHECK-LABEL: @clobber_abi
// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31},~{sreg}"()
#[no_mangle]
pub unsafe fn clobber_abi() {
asm!("", clobber_abi("C"), options(nostack, nomem));
}
// CHECK-LABEL: @clobber_abi_with_preserved_flags
// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31}"()
#[no_mangle]
pub unsafe fn clobber_abi_with_preserved_flags() {
asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
}
+6 -2
View File
@@ -20,8 +20,12 @@ assert-css: (".big-toggle summary::before", {
"left": "-11px",
"top": "9px",
})
// It should have the same X position as the other toggles.
compare-elements-position: (".big-toggle summary::before", ".method-toggle summary::before", ["x"])
// It should have a slightly different X position as the other toggles.
store-position: (".big-toggle summary::before", {"x": big_toggle})
store-position: (".method-toggle summary::before", {"x": small_toggle})
assert: |big_toggle| < |small_toggle|
// Margin is 0.5em so around 8 px.
assert: |small_toggle| - |big_toggle| < 10
// But still shouldn't have the same Y position.
compare-elements-position-false: (
".big-toggle summary::before",
@@ -16,6 +16,6 @@ compare-elements-property: (
"#implementations-list > details .docblock > p",
["scrollWidth"],
)
assert-property: ("#implementations-list > details .docblock", {"scrollWidth": "816"})
assert-property: ("#implementations-list > details .docblock", {"scrollWidth": "835"})
// However, since there is overflow in the <table>, its scroll width is bigger.
assert-property: ("#implementations-list > details .docblock table", {"scrollWidth": "1572"})
@@ -4,7 +4,9 @@ go-to: "file://" + |DOC_PATH| + "/lib2/struct.ItemInfoAlignmentTest.html"
// First, we try it in "desktop" mode.
set-window-size: (1200, 870)
wait-for-size: ("body", {"width": 1200})
compare-elements-position: (".impl-items > .item-info", "summary > .item-info", ["x"])
// Next, we try it in "mobile" mode (max-width: 700px).
set-window-size: (650, 650)
wait-for-size: ("body", {"width": 650})
compare-elements-position: (".impl-items > .item-info", "summary > .item-info", ["x"])
+1 -1
View File
@@ -19,7 +19,7 @@ store-position: (
"//*[@class='stab portability']//code[normalize-space()='Win32_System_Diagnostics']",
{"x": second_line_x, "y": second_line_y},
)
assert: |first_line_x| != |second_line_x| && |first_line_x| == 516 && |second_line_x| == 272
assert: |first_line_x| != |second_line_x| && |first_line_x| == 521 && |second_line_x| == 277
assert: |first_line_y| != |second_line_y| && |first_line_y| == 718 && |second_line_y| == 741
// Now we ensure that they're not rendered on the same line.
@@ -1,7 +1,6 @@
// This test is to ensure that methods are correctly aligned on the left side.
go-to: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html"
// First we ensure that we have methods with and without documentation.
assert: ".impl-items > details.method-toggle > summary > section.method"
assert: ".impl-items > section.method"
+7 -7
View File
@@ -62,9 +62,9 @@ define-function: (
// We start with a wide screen.
set-window-size: (1100, 600)
call-function: ("check-notable-tooltip-position-complete", {
"x": 677,
"i_x": 955,
"popover_x": 463,
"x": 682,
"i_x": 960,
"popover_x": 468,
})
// Now only the `i` should be on the next line.
@@ -78,16 +78,16 @@ compare-elements-position-false: (
// Now both the `i` and the struct name should be on the next line.
set-window-size: (980, 600)
call-function: ("check-notable-tooltip-position", {
"x": 245,
"i_x": 523,
"x": 250,
"i_x": 528,
})
// Checking on mobile now.
set-window-size: (650, 600)
wait-for-size: ("body", {"width": 650})
call-function: ("check-notable-tooltip-position-complete", {
"x": 25,
"i_x": 303,
"x": 26,
"i_x": 305,
"popover_x": 0,
})
+1 -1
View File
@@ -18,7 +18,7 @@ assert-position: ("#implementations-list > details > summary::before", {"x": 4})
// Assert the position of the toggle on a method.
assert-position: (
"#trait-implementations-list .impl-items .method-toggle > summary::before",
{"x": 4},
{"x": 6},
)
// Now we do the same but with a little bigger width
@@ -1,5 +1,5 @@
//@ edition:2024
//@ compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
//@ compile-flags:--test --test-args=--test-threads=1
//@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
//@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
//@ failure-status: 101
+1 -1
View File
@@ -4,7 +4,7 @@
//@[edition2015]compile-flags:--test --test-args=--test-threads=1
//@[edition2024]edition:2015
//@[edition2024]aux-build:extern_macros.rs
//@[edition2024]compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
//@[edition2024]compile-flags:--test --test-args=--test-threads=1
//@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
//@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
//@ check-pass
@@ -6,7 +6,7 @@
//@[edition2015]compile-flags:--test --test-args=--test-threads=1
//@[edition2024]edition:2024
//@[edition2024]check-pass
//@[edition2024]compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
//@[edition2024]compile-flags:--test --test-args=--test-threads=1
//@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
//@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
+1 -1
View File
@@ -1,4 +1,4 @@
//@ compile-flags: --edition 2024 -Zunstable-options
//@ compile-flags: --edition 2024
//@ check-pass
#![feature(async_iterator, gen_blocks)]
@@ -1,4 +1,4 @@
//@ compile-flags: --edition 2024 -Zunstable-options
//@ compile-flags: --edition 2024
//@ check-pass
#![feature(async_iterator, gen_blocks, noop_waker)]
-1
View File
@@ -2,7 +2,6 @@
//@ compile-flags: -Z validate-mir
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] compile-flags: -Z unstable-options
//@ [edition2024] edition: 2024
#![feature(let_chains)]
@@ -1,5 +1,5 @@
error: `if let` assigns a shorter lifetime since Edition 2024
--> $DIR/lint-if-let-rescope-gated.rs:27:8
--> $DIR/lint-if-let-rescope-gated.rs:26:8
|
LL | if let Some(_value) = Droppy.get() {
| ^^^^^^^^^^^^^^^^^^^------^^^^^^
@@ -9,12 +9,12 @@ LL | if let Some(_value) = Droppy.get() {
= warning: this changes meaning in Rust 2024
= note: for more information, see issue #124085 <https://github.com/rust-lang/rust/issues/124085>
help: the value is now dropped here in Edition 2024
--> $DIR/lint-if-let-rescope-gated.rs:31:5
--> $DIR/lint-if-let-rescope-gated.rs:30:5
|
LL | } else {
| ^
note: the lint level is defined here
--> $DIR/lint-if-let-rescope-gated.rs:11:9
--> $DIR/lint-if-let-rescope-gated.rs:10:9
|
LL | #![deny(if_let_rescope)]
| ^^^^^^^^^^^^^^
@@ -5,7 +5,6 @@
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] edition: 2024
//@ [edition2024] compile-flags: -Zunstable-options
//@ [edition2024] check-pass
#![deny(if_let_rescope)]
@@ -1,5 +1,5 @@
error[E0716]: temporary value dropped while borrowed
--> $DIR/tail-expr-drop-order-negative.rs:9:15
--> $DIR/tail-expr-drop-order-negative.rs:8:15
|
LL | x.replace(std::cell::RefCell::new(123).borrow()).is_some()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - temporary value is freed at the end of this statement
@@ -1,5 +1,4 @@
//@ revisions: edition2021 edition2024
//@ [edition2024] compile-flags: -Zunstable-options
//@ [edition2024] edition: 2024
//@ [edition2021] check-pass
@@ -2,7 +2,6 @@
//
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//
//@[e2021] run-pass
//@[e2021] run-rustfix
@@ -1,5 +1,5 @@
warning: this function depends on never type fallback being `()`
--> $DIR/never-type-fallback-breaking.rs:17:1
--> $DIR/never-type-fallback-breaking.rs:16:1
|
LL | fn m() {
| ^^^^^^
@@ -8,7 +8,7 @@ LL | fn m() {
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
= help: specify the types explicitly
note: in edition 2024, the requirement `!: Default` will fail
--> $DIR/never-type-fallback-breaking.rs:21:17
--> $DIR/never-type-fallback-breaking.rs:20:17
|
LL | true => Default::default(),
| ^^^^^^^^^^^^^^^^^^
@@ -19,7 +19,7 @@ LL | let x: () = match true {
| ++++
warning: this function depends on never type fallback being `()`
--> $DIR/never-type-fallback-breaking.rs:29:1
--> $DIR/never-type-fallback-breaking.rs:28:1
|
LL | fn q() -> Option<()> {
| ^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL | fn q() -> Option<()> {
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
= help: specify the types explicitly
note: in edition 2024, the requirement `!: Default` will fail
--> $DIR/never-type-fallback-breaking.rs:36:5
--> $DIR/never-type-fallback-breaking.rs:35:5
|
LL | deserialize()?;
| ^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL | deserialize::<()>()?;
| ++++++
warning: this function depends on never type fallback being `()`
--> $DIR/never-type-fallback-breaking.rs:46:1
--> $DIR/never-type-fallback-breaking.rs:45:1
|
LL | fn meow() -> Result<(), ()> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -47,7 +47,7 @@ LL | fn meow() -> Result<(), ()> {
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
= help: specify the types explicitly
note: in edition 2024, the requirement `(): From<!>` will fail
--> $DIR/never-type-fallback-breaking.rs:49:5
--> $DIR/never-type-fallback-breaking.rs:48:5
|
LL | help(1)?;
| ^^^^^^^
@@ -1,5 +1,5 @@
error[E0277]: the trait bound `!: Default` is not satisfied
--> $DIR/never-type-fallback-breaking.rs:21:17
--> $DIR/never-type-fallback-breaking.rs:20:17
|
LL | true => Default::default(),
| ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `!`
@@ -8,7 +8,7 @@ LL | true => Default::default(),
= help: did you intend to use the type `()` here instead?
error[E0277]: the trait bound `!: Default` is not satisfied
--> $DIR/never-type-fallback-breaking.rs:36:5
--> $DIR/never-type-fallback-breaking.rs:35:5
|
LL | deserialize()?;
| ^^^^^^^^^^^^^ the trait `Default` is not implemented for `!`
@@ -16,13 +16,13 @@ LL | deserialize()?;
= note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 <https://github.com/rust-lang/rust/issues/48950> for more information)
= help: did you intend to use the type `()` here instead?
note: required by a bound in `deserialize`
--> $DIR/never-type-fallback-breaking.rs:32:23
--> $DIR/never-type-fallback-breaking.rs:31:23
|
LL | fn deserialize<T: Default>() -> Option<T> {
| ^^^^^^^ required by this bound in `deserialize`
error[E0277]: the trait bound `(): From<!>` is not satisfied
--> $DIR/never-type-fallback-breaking.rs:49:5
--> $DIR/never-type-fallback-breaking.rs:48:5
|
LL | help(1)?;
| ^^^^^^^ the trait `From<!>` is not implemented for `()`
@@ -39,7 +39,7 @@ LL | help(1)?;
and 4 others
= note: required for `!` to implement `Into<()>`
note: required by a bound in `help`
--> $DIR/never-type-fallback-breaking.rs:43:20
--> $DIR/never-type-fallback-breaking.rs:42:20
|
LL | fn help<'a: 'a, T: Into<()>, U>(_: U) -> Result<T, ()> {
| ^^^^^^^^ required by this bound in `help`
@@ -2,7 +2,6 @@
//
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//
//@[e2021] run-pass
//@[e2021] run-rustfix
-1
View File
@@ -2,7 +2,6 @@
//
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//
//@ run-pass
//@ check-run-results
-2
View File
@@ -5,8 +5,6 @@
//@[e2021] edition:2021
//@[e2024] edition:2024
//@[e2024] compile-flags: -Zunstable-options
fn main() {
println!("hello");
}
+4 -4
View File
@@ -1,23 +1,23 @@
error: ['a: *, 'a: o]
--> $DIR/variance.rs:14:36
--> $DIR/variance.rs:13:36
|
LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
| ^^^^^^^^^^
error: ['a: *, 'a: o]
--> $DIR/variance.rs:19:32
--> $DIR/variance.rs:18:32
|
LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: ['a: o]
--> $DIR/variance.rs:21:40
--> $DIR/variance.rs:20:40
|
LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
| ^^^^^^^^^^
error: ['a: o]
--> $DIR/variance.rs:26:36
--> $DIR/variance.rs:25:36
|
LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
+4 -4
View File
@@ -1,23 +1,23 @@
error: ['a: *, 'a: o]
--> $DIR/variance.rs:14:36
--> $DIR/variance.rs:13:36
|
LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
| ^^^^^^^^^^
error: ['a: *, 'a: o]
--> $DIR/variance.rs:19:32
--> $DIR/variance.rs:18:32
|
LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: ['a: o]
--> $DIR/variance.rs:21:40
--> $DIR/variance.rs:20:40
|
LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
| ^^^^^^^^^^
error: ['a: o]
--> $DIR/variance.rs:26:36
--> $DIR/variance.rs:25:36
|
LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
+4 -4
View File
@@ -1,23 +1,23 @@
error: ['a: *]
--> $DIR/variance.rs:14:36
--> $DIR/variance.rs:13:36
|
LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
| ^^^^^^^^^^
error: ['a: *, 'a: o]
--> $DIR/variance.rs:19:32
--> $DIR/variance.rs:18:32
|
LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
error: []
--> $DIR/variance.rs:21:40
--> $DIR/variance.rs:20:40
|
LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
| ^^^^^^^^^^
error: ['a: o]
--> $DIR/variance.rs:26:36
--> $DIR/variance.rs:25:36
|
LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^
-1
View File
@@ -1,6 +1,5 @@
//@ revisions: old new e2024
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Z unstable-options
#![cfg_attr(new, feature(lifetime_capture_rules_2024))]
+1 -1
View File
@@ -1,5 +1,5 @@
error: lifetimes cannot use keyword names
--> $DIR/gen-lt.rs:11:11
--> $DIR/gen-lt.rs:10:11
|
LL | fn gen_lt<'gen>() {}
| ^^^^
-1
View File
@@ -2,7 +2,6 @@
//@[e2021] edition:2021
//@[e2024] edition:2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2021] check-pass
@@ -1,5 +1,5 @@
error[E0597]: `cell` does not live long enough
--> $DIR/refcell-in-tail-expr.rs:10:27
--> $DIR/refcell-in-tail-expr.rs:9:27
|
LL | let cell = std::cell::RefCell::new(0u8);
| ---- binding `cell` declared here
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] edition: 2024
//@ [edition2024] compile-flags: -Zunstable-options
//@ [edition2024] check-pass
fn main() {
@@ -1,5 +1,5 @@
error[E0597]: `c` does not live long enough
--> $DIR/shorter-tail-expr-lifetime.rs:8:5
--> $DIR/shorter-tail-expr-lifetime.rs:7:5
|
LL | let c = std::cell::RefCell::new("..");
| - binding `c` declared here
@@ -1,5 +1,4 @@
//@ revisions: edition2021 edition2024
//@ [edition2024] compile-flags: -Zunstable-options
//@ [edition2024] edition: 2024
//@ [edition2024] run-pass
@@ -1,6 +1,5 @@
//@ revisions: edition2021 edition2024
//@ ignore-wasm no panic or subprocess support
//@ [edition2024] compile-flags: -Zunstable-options
//@ [edition2024] edition: 2024
//@ run-pass
//@ needs-unwind
@@ -15,7 +15,6 @@
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] edition: 2024
//@ [edition2024] compile-flags: -Z unstable-options
fn temp() -> (String, i32) {
(String::from("Hello"), 1)
+12 -12
View File
@@ -1,5 +1,5 @@
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:39:18
--> $DIR/static-mut-refs.rs:38:18
|
LL | let _y = &X;
| ^^ shared reference to mutable static
@@ -13,7 +13,7 @@ LL | let _y = &raw const X;
| ~~~~~~~~~~
warning: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:43:18
--> $DIR/static-mut-refs.rs:42:18
|
LL | let _y = &mut X;
| ^^^^^^ mutable reference to mutable static
@@ -26,7 +26,7 @@ LL | let _y = &raw mut X;
| ~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:51:22
--> $DIR/static-mut-refs.rs:50:22
|
LL | let ref _a = X;
| ^ shared reference to mutable static
@@ -35,7 +35,7 @@ LL | let ref _a = X;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:55:25
--> $DIR/static-mut-refs.rs:54:25
|
LL | let (_b, _c) = (&X, &Y);
| ^^ shared reference to mutable static
@@ -48,7 +48,7 @@ LL | let (_b, _c) = (&raw const X, &Y);
| ~~~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:55:29
--> $DIR/static-mut-refs.rs:54:29
|
LL | let (_b, _c) = (&X, &Y);
| ^^ shared reference to mutable static
@@ -61,7 +61,7 @@ LL | let (_b, _c) = (&X, &raw const Y);
| ~~~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:61:13
--> $DIR/static-mut-refs.rs:60:13
|
LL | foo(&X);
| ^^ shared reference to mutable static
@@ -74,7 +74,7 @@ LL | foo(&raw const X);
| ~~~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:67:17
--> $DIR/static-mut-refs.rs:66:17
|
LL | let _ = Z.len();
| ^^^^^^^ shared reference to mutable static
@@ -83,7 +83,7 @@ LL | let _ = Z.len();
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:73:33
--> $DIR/static-mut-refs.rs:72:33
|
LL | let _ = format!("{:?}", Z);
| ^ shared reference to mutable static
@@ -92,7 +92,7 @@ LL | let _ = format!("{:?}", Z);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:77:18
--> $DIR/static-mut-refs.rs:76:18
|
LL | let _v = &A.value;
| ^^^^^^^^ shared reference to mutable static
@@ -105,7 +105,7 @@ LL | let _v = &raw const A.value;
| ~~~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:81:18
--> $DIR/static-mut-refs.rs:80:18
|
LL | let _s = &A.s.value;
| ^^^^^^^^^^ shared reference to mutable static
@@ -118,7 +118,7 @@ LL | let _s = &raw const A.s.value;
| ~~~~~~~~~~
warning: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:85:22
--> $DIR/static-mut-refs.rs:84:22
|
LL | let ref _v = A.value;
| ^^^^^^^ shared reference to mutable static
@@ -127,7 +127,7 @@ LL | let ref _v = A.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
warning: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:15:14
--> $DIR/static-mut-refs.rs:14:14
|
LL | &mut ($x.0)
| ^^^^^^ mutable reference to mutable static
+12 -12
View File
@@ -1,5 +1,5 @@
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:39:18
--> $DIR/static-mut-refs.rs:38:18
|
LL | let _y = &X;
| ^^ shared reference to mutable static
@@ -13,7 +13,7 @@ LL | let _y = &raw const X;
| ~~~~~~~~~~
error: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:43:18
--> $DIR/static-mut-refs.rs:42:18
|
LL | let _y = &mut X;
| ^^^^^^ mutable reference to mutable static
@@ -26,7 +26,7 @@ LL | let _y = &raw mut X;
| ~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:51:22
--> $DIR/static-mut-refs.rs:50:22
|
LL | let ref _a = X;
| ^ shared reference to mutable static
@@ -35,7 +35,7 @@ LL | let ref _a = X;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:55:25
--> $DIR/static-mut-refs.rs:54:25
|
LL | let (_b, _c) = (&X, &Y);
| ^^ shared reference to mutable static
@@ -48,7 +48,7 @@ LL | let (_b, _c) = (&raw const X, &Y);
| ~~~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:55:29
--> $DIR/static-mut-refs.rs:54:29
|
LL | let (_b, _c) = (&X, &Y);
| ^^ shared reference to mutable static
@@ -61,7 +61,7 @@ LL | let (_b, _c) = (&X, &raw const Y);
| ~~~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:61:13
--> $DIR/static-mut-refs.rs:60:13
|
LL | foo(&X);
| ^^ shared reference to mutable static
@@ -74,7 +74,7 @@ LL | foo(&raw const X);
| ~~~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:67:17
--> $DIR/static-mut-refs.rs:66:17
|
LL | let _ = Z.len();
| ^^^^^^^ shared reference to mutable static
@@ -83,7 +83,7 @@ LL | let _ = Z.len();
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:73:33
--> $DIR/static-mut-refs.rs:72:33
|
LL | let _ = format!("{:?}", Z);
| ^ shared reference to mutable static
@@ -92,7 +92,7 @@ LL | let _ = format!("{:?}", Z);
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:77:18
--> $DIR/static-mut-refs.rs:76:18
|
LL | let _v = &A.value;
| ^^^^^^^^ shared reference to mutable static
@@ -105,7 +105,7 @@ LL | let _v = &raw const A.value;
| ~~~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:81:18
--> $DIR/static-mut-refs.rs:80:18
|
LL | let _s = &A.s.value;
| ^^^^^^^^^^ shared reference to mutable static
@@ -118,7 +118,7 @@ LL | let _s = &raw const A.s.value;
| ~~~~~~~~~~
error: creating a shared reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:85:22
--> $DIR/static-mut-refs.rs:84:22
|
LL | let ref _v = A.value;
| ^^^^^^^ shared reference to mutable static
@@ -127,7 +127,7 @@ LL | let ref _v = A.value;
= note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
error: creating a mutable reference to mutable static is discouraged
--> $DIR/static-mut-refs.rs:15:14
--> $DIR/static-mut-refs.rs:14:14
|
LL | &mut ($x.0)
| ^^^^^^ mutable reference to mutable static
-1
View File
@@ -6,7 +6,6 @@
//@ [e2021] run-pass
//@ [e2024] edition:2024
//@ [e2024] compile-flags: -Zunstable-options
static mut FOO: (u32, u32) = (1, 2);
@@ -1,11 +1,11 @@
error: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:9:20
--> $DIR/macro-missing-fragment.rs:8:20
|
LL | ( $( any_token $field_rust_type )* ) => {};
| ^^^^^^^^^^^^^^^^
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:9:20
--> $DIR/macro-missing-fragment.rs:8:20
|
LL | ( $( any_token $field_rust_type )* ) => {};
| ^^^^^^^^^^^^^^^^
@@ -13,13 +13,13 @@ LL | ( $( any_token $field_rust_type )* ) => {};
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
note: the lint level is defined here
--> $DIR/macro-missing-fragment.rs:6:9
--> $DIR/macro-missing-fragment.rs:5:9
|
LL | #![warn(missing_fragment_specifier)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:19:7
--> $DIR/macro-missing-fragment.rs:18:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -28,7 +28,7 @@ LL | ( $name ) => {};
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:26:7
--> $DIR/macro-missing-fragment.rs:25:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -40,7 +40,7 @@ error: aborting due to 1 previous error; 3 warnings emitted
Future incompatibility report: Future breakage diagnostic:
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:9:20
--> $DIR/macro-missing-fragment.rs:8:20
|
LL | ( $( any_token $field_rust_type )* ) => {};
| ^^^^^^^^^^^^^^^^
@@ -48,14 +48,14 @@ LL | ( $( any_token $field_rust_type )* ) => {};
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
note: the lint level is defined here
--> $DIR/macro-missing-fragment.rs:6:9
--> $DIR/macro-missing-fragment.rs:5:9
|
LL | #![warn(missing_fragment_specifier)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:19:7
--> $DIR/macro-missing-fragment.rs:18:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -63,14 +63,14 @@ LL | ( $name ) => {};
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
note: the lint level is defined here
--> $DIR/macro-missing-fragment.rs:6:9
--> $DIR/macro-missing-fragment.rs:5:9
|
LL | #![warn(missing_fragment_specifier)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Future breakage diagnostic:
warning: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:26:7
--> $DIR/macro-missing-fragment.rs:25:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -78,7 +78,7 @@ LL | ( $name ) => {};
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
note: the lint level is defined here
--> $DIR/macro-missing-fragment.rs:6:9
--> $DIR/macro-missing-fragment.rs:5:9
|
LL | #![warn(missing_fragment_specifier)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1,5 +1,5 @@
error: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:9:20
--> $DIR/macro-missing-fragment.rs:8:20
|
LL | ( $( any_token $field_rust_type )* ) => {};
| ^^^^^^^^^^^^^^^^
@@ -12,7 +12,7 @@ LL | ( $( any_token $field_rust_type:spec )* ) => {};
| +++++
error: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:19:7
--> $DIR/macro-missing-fragment.rs:18:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -25,7 +25,7 @@ LL | ( $name:spec ) => {};
| +++++
error: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:26:7
--> $DIR/macro-missing-fragment.rs:25:7
|
LL | ( $name ) => {};
| ^^^^^
@@ -38,7 +38,7 @@ LL | ( $name:spec ) => {};
| +++++
error: missing fragment specifier
--> $DIR/macro-missing-fragment.rs:9:20
--> $DIR/macro-missing-fragment.rs:8:20
|
LL | ( $( any_token $field_rust_type )* ) => {};
| ^^^^^^^^^^^^^^^^
@@ -1,7 +1,6 @@
//@ revisions: e2015 e2024
//@[e2015] edition:2015
//@[e2024] edition:2024
//@[e2024] compile-flags: -Zunstable-options
#![warn(missing_fragment_specifier)]
@@ -2,7 +2,6 @@
//@ needs-unwind
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] compile-flags: -Z unstable-options
//@ [edition2024] edition: 2024
// See `mir_drop_order.rs` for more information
@@ -1,5 +1,5 @@
warning: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
|
LL | unsafe { mem::zeroed() }
| ^^^^^^^^^^^^^
@@ -14,7 +14,7 @@ LL | unsafe { mem::zeroed::<()>() }
| ++++++
warning: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:30:13
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:29:13
|
LL | core::mem::transmute(Zst)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL | core::mem::transmute::<_, ()>(Zst)
| +++++++++
warning: never type fallback affects this union access
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:47:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:46:18
|
LL | unsafe { Union { a: () }.b }
| ^^^^^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL | unsafe { Union { a: () }.b }
= help: specify the type explicitly
warning: never type fallback affects this raw pointer dereference
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:58:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:57:18
|
LL | unsafe { *ptr::from_ref(&()).cast() }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -52,7 +52,7 @@ LL | unsafe { *ptr::from_ref(&()).cast::<()>() }
| ++++++
warning: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:79:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:78:18
|
LL | unsafe { internally_create(x) }
| ^^^^^^^^^^^^^^^^^^^^
@@ -66,7 +66,7 @@ LL | unsafe { internally_create::<()>(x) }
| ++++++
warning: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:97:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:96:18
|
LL | unsafe { zeroed() }
| ^^^^^^^^
@@ -80,7 +80,7 @@ LL | let zeroed = mem::zeroed::<()>;
| ++++++
warning: never type fallback affects this `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:92:22
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:91:22
|
LL | let zeroed = mem::zeroed;
| ^^^^^^^^^^^
@@ -94,7 +94,7 @@ LL | let zeroed = mem::zeroed::<()>;
| ++++++
warning: never type fallback affects this `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:115:17
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:114:17
|
LL | let f = internally_create;
| ^^^^^^^^^^^^^^^^^
@@ -108,7 +108,7 @@ LL | let f = internally_create::<()>;
| ++++++
warning: never type fallback affects this call to an `unsafe` method
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:140:13
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:139:13
|
LL | S(marker::PhantomData).create_out_of_thin_air()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -118,7 +118,7 @@ LL | S(marker::PhantomData).create_out_of_thin_air()
= help: specify the type explicitly
warning: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:158:19
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:157:19
|
LL | match send_message::<_ /* ?0 */>() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1,5 +1,5 @@
error: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
|
LL | unsafe { mem::zeroed() }
| ^^^^^^^^^^^^^
@@ -14,7 +14,7 @@ LL | unsafe { mem::zeroed::<()>() }
| ++++++
error: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:30:13
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:29:13
|
LL | core::mem::transmute(Zst)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL | core::mem::transmute::<_, ()>(Zst)
| +++++++++
error: never type fallback affects this union access
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:47:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:46:18
|
LL | unsafe { Union { a: () }.b }
| ^^^^^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL | unsafe { Union { a: () }.b }
= help: specify the type explicitly
error: never type fallback affects this raw pointer dereference
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:58:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:57:18
|
LL | unsafe { *ptr::from_ref(&()).cast() }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -52,7 +52,7 @@ LL | unsafe { *ptr::from_ref(&()).cast::<()>() }
| ++++++
error: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:79:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:78:18
|
LL | unsafe { internally_create(x) }
| ^^^^^^^^^^^^^^^^^^^^
@@ -66,7 +66,7 @@ LL | unsafe { internally_create::<()>(x) }
| ++++++
error: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:97:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:96:18
|
LL | unsafe { zeroed() }
| ^^^^^^^^
@@ -80,7 +80,7 @@ LL | let zeroed = mem::zeroed::<()>;
| ++++++
error: never type fallback affects this `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:92:22
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:91:22
|
LL | let zeroed = mem::zeroed;
| ^^^^^^^^^^^
@@ -94,7 +94,7 @@ LL | let zeroed = mem::zeroed::<()>;
| ++++++
error: never type fallback affects this `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:115:17
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:114:17
|
LL | let f = internally_create;
| ^^^^^^^^^^^^^^^^^
@@ -108,7 +108,7 @@ LL | let f = internally_create::<()>;
| ++++++
error: never type fallback affects this call to an `unsafe` method
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:140:13
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:139:13
|
LL | S(marker::PhantomData).create_out_of_thin_air()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -118,7 +118,7 @@ LL | S(marker::PhantomData).create_out_of_thin_air()
= help: specify the type explicitly
error: never type fallback affects this call to an `unsafe` function
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:158:19
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:157:19
|
LL | match send_message::<_ /* ?0 */>() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -136,7 +136,7 @@ LL | match send_message::<() /* ?0 */>() {
| ~~
warning: the type `!` does not permit zero-initialization
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
--> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
|
LL | unsafe { mem::zeroed() }
| ^^^^^^^^^^^^^ this code causes undefined behavior when executed
@@ -2,7 +2,6 @@
//@[e2015] check-pass
//@[e2024] check-fail
//@[e2024] edition:2024
//@[e2024] compile-flags: -Zunstable-options
use std::{marker, mem, ptr};
@@ -1,5 +1,5 @@
error[E0597]: `counter` does not live long enough
--> $DIR/issue-54556-niconii.rs:28:20
--> $DIR/issue-54556-niconii.rs:27:20
|
LL | let counter = Mutex;
| ------- binding `counter` declared here
-1
View File
@@ -9,7 +9,6 @@
//@ revisions: edition2021 edition2024
//@ [edition2021] edition: 2021
//@ [edition2024] edition: 2024
//@ [edition2024] compile-flags: -Z unstable-options
//@ [edition2024] check-pass
struct Mutex;
@@ -6,7 +6,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
//@ check-pass
// This checks how the expr fragment specifier works.
@@ -1,7 +1,6 @@
//@ revisions: e2021 e2024
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@ check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,5 +1,5 @@
error: trait method `poll` will become ambiguous in Rust 2024
--> $DIR/future-poll-async-block.rs:14:5
--> $DIR/future-poll-async-block.rs:13:5
|
LL | core::pin::pin!(async {}).poll(&mut context());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::poll(&core::pin::pin!(async {}), &mut context())`
@@ -7,7 +7,7 @@ LL | core::pin::pin!(async {}).poll(&mut context());
= warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
note: the lint level is defined here
--> $DIR/future-poll-async-block.rs:8:9
--> $DIR/future-poll-async-block.rs:7:9
|
LL | #![deny(rust_2024_prelude_collisions)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,5 +1,5 @@
error: trait method `poll` will become ambiguous in Rust 2024
--> $DIR/future-poll-not-future-pinned.rs:18:5
--> $DIR/future-poll-not-future-pinned.rs:17:5
|
LL | core::pin::pin!(()).poll();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::poll(&core::pin::pin!(()))`
@@ -7,7 +7,7 @@ LL | core::pin::pin!(()).poll();
= warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
note: the lint level is defined here
--> $DIR/future-poll-not-future-pinned.rs:8:9
--> $DIR/future-poll-not-future-pinned.rs:7:9
|
LL | #![deny(rust_2024_prelude_collisions)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,7 +1,6 @@
//@ revisions: e2021 e2024
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@ check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,5 +1,5 @@
error: trait method `into_future` will become ambiguous in Rust 2024
--> $DIR/into-future-adt.rs:26:5
--> $DIR/into-future-adt.rs:25:5
|
LL | Cat.into_future();
| ^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::into_future(&Cat)`
@@ -7,7 +7,7 @@ LL | Cat.into_future();
= warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
note: the lint level is defined here
--> $DIR/into-future-adt.rs:8:9
--> $DIR/into-future-adt.rs:7:9
|
LL | #![deny(rust_2024_prelude_collisions)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,7 +1,6 @@
//@ revisions: e2021 e2024
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@ check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,5 +1,5 @@
error: trait method `into_future` will become ambiguous in Rust 2024
--> $DIR/into-future-not-into-future.rs:20:5
--> $DIR/into-future-not-into-future.rs:19:5
|
LL | Cat.into_future();
| ^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::into_future(&Cat)`
@@ -7,7 +7,7 @@ LL | Cat.into_future();
= warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
note: the lint level is defined here
--> $DIR/into-future-not-into-future.rs:8:9
--> $DIR/into-future-not-into-future.rs:7:9
|
LL | #![deny(rust_2024_prelude_collisions)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2,7 +2,6 @@
//@[e2021] edition: 2021
//@[e2021] run-rustfix
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
//@[e2024] check-pass
#![deny(rust_2024_prelude_collisions)]
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
//@ check-pass
@@ -5,7 +5,6 @@
//@ check-pass
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
//@ proc-macro: unsafe-attributes-pm.rs
unsafe_attributes_pm::missing_unsafe!();
@@ -1,5 +1,5 @@
error: unsafe attribute used without unsafe
--> $DIR/unsafe-attributes.rs:8:3
--> $DIR/unsafe-attributes.rs:7:3
|
LL | #[no_mangle]
| ^^^^^^^^^ usage of unsafe attribute
@@ -2,7 +2,6 @@
//@[edition2021] edition:2021
//@[edition2021] check-pass
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
#[no_mangle] //[edition2024]~ ERROR: unsafe attribute used without unsafe
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `before_exec` is unsafe and requires unsafe block
--> $DIR/unsafe-before_exec.rs:14:5
--> $DIR/unsafe-before_exec.rs:13:5
|
LL | cmd.before_exec(|| Ok(()));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
-1
View File
@@ -3,7 +3,6 @@
//@[e2021] edition: 2021
//@[e2021] check-pass
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
use std::process::Command;
use std::os::unix::process::CommandExt;
+6 -6
View File
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:15:9
--> $DIR/unsafe-env.rs:14:9
|
LL | unsafe_fn();
| ^^^^^^^^^^^ call to unsafe function
@@ -7,18 +7,18 @@ LL | unsafe_fn();
= note: for more information, see issue #71668 <https://github.com/rust-lang/rust/issues/71668>
= note: consult the function's documentation for information on how to avoid undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> $DIR/unsafe-env.rs:9:1
--> $DIR/unsafe-env.rs:8:1
|
LL | unsafe fn unsafe_fn() {
| ^^^^^^^^^^^^^^^^^^^^^
note: the lint level is defined here
--> $DIR/unsafe-env.rs:8:8
--> $DIR/unsafe-env.rs:7:8
|
LL | #[deny(unsafe_op_in_unsafe_fn)]
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe function or block
--> $DIR/unsafe-env.rs:33:5
--> $DIR/unsafe-env.rs:32:5
|
LL | unsafe_fn();
| ^^^^^^^^^^^ call to unsafe function
@@ -26,13 +26,13 @@ LL | unsafe_fn();
= note: consult the function's documentation for information on how to avoid undefined behavior
error: unnecessary `unsafe` block
--> $DIR/unsafe-env.rs:36:5
--> $DIR/unsafe-env.rs:35:5
|
LL | unsafe {
| ^^^^^^ unnecessary `unsafe` block
|
note: the lint level is defined here
--> $DIR/unsafe-env.rs:21:8
--> $DIR/unsafe-env.rs:20:8
|
LL | #[deny(unused_unsafe)]
| ^^^^^^^^^^^^^
+10 -10
View File
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `std::env::set_var` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:10:5
--> $DIR/unsafe-env.rs:9:5
|
LL | env::set_var("FOO", "BAR");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -7,18 +7,18 @@ LL | env::set_var("FOO", "BAR");
= note: for more information, see issue #71668 <https://github.com/rust-lang/rust/issues/71668>
= note: consult the function's documentation for information on how to avoid undefined behavior
note: an unsafe function restricts its caller, but its body is safe by default
--> $DIR/unsafe-env.rs:9:1
--> $DIR/unsafe-env.rs:8:1
|
LL | unsafe fn unsafe_fn() {
| ^^^^^^^^^^^^^^^^^^^^^
note: the lint level is defined here
--> $DIR/unsafe-env.rs:8:8
--> $DIR/unsafe-env.rs:7:8
|
LL | #[deny(unsafe_op_in_unsafe_fn)]
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0133]: call to unsafe function `std::env::remove_var` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:12:5
--> $DIR/unsafe-env.rs:11:5
|
LL | env::remove_var("FOO");
| ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -27,7 +27,7 @@ LL | env::remove_var("FOO");
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:15:9
--> $DIR/unsafe-env.rs:14:9
|
LL | unsafe_fn();
| ^^^^^^^^^^^ call to unsafe function
@@ -36,7 +36,7 @@ LL | unsafe_fn();
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:23:5
--> $DIR/unsafe-env.rs:22:5
|
LL | env::set_var("FOO", "BAR");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -44,7 +44,7 @@ LL | env::set_var("FOO", "BAR");
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:25:5
--> $DIR/unsafe-env.rs:24:5
|
LL | env::remove_var("FOO");
| ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -52,7 +52,7 @@ LL | env::remove_var("FOO");
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
--> $DIR/unsafe-env.rs:33:5
--> $DIR/unsafe-env.rs:32:5
|
LL | unsafe_fn();
| ^^^^^^^^^^^ call to unsafe function
@@ -60,13 +60,13 @@ LL | unsafe_fn();
= note: consult the function's documentation for information on how to avoid undefined behavior
error: unnecessary `unsafe` block
--> $DIR/unsafe-env.rs:36:5
--> $DIR/unsafe-env.rs:35:5
|
LL | unsafe {
| ^^^^^^ unnecessary `unsafe` block
|
note: the lint level is defined here
--> $DIR/unsafe-env.rs:21:8
--> $DIR/unsafe-env.rs:20:8
|
LL | #[deny(unused_unsafe)]
| ^^^^^^^^^^^^^
-1
View File
@@ -1,7 +1,6 @@
//@ revisions: e2021 e2024
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
use std::env;
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe function or block
--> $DIR/extern-items-unsafe.rs:12:5
--> $DIR/extern-items-unsafe.rs:11:5
|
LL | test1(TEST1);
| ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL | test1(TEST1);
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: use of extern static is unsafe and requires unsafe function or block
--> $DIR/extern-items-unsafe.rs:12:11
--> $DIR/extern-items-unsafe.rs:11:11
|
LL | test1(TEST1);
| ^^^^^ use of extern static
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe block
--> $DIR/extern-items-unsafe.rs:12:5
--> $DIR/extern-items-unsafe.rs:11:5
|
LL | test1(TEST1);
| ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL | test1(TEST1);
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: use of extern static is unsafe and requires unsafe block
--> $DIR/extern-items-unsafe.rs:12:11
--> $DIR/extern-items-unsafe.rs:11:11
|
LL | test1(TEST1);
| ^^^^^ use of extern static
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
unsafe extern "C" {
static TEST1: i32;
@@ -1,5 +1,5 @@
error: extern blocks must be unsafe
--> $DIR/extern-items.rs:7:1
--> $DIR/extern-items.rs:6:1
|
LL | / extern "C" {
LL | |
@@ -2,7 +2,6 @@
//@[edition2021] edition:2021
//@[edition2021] check-pass
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
extern "C" {
//[edition2024]~^ ERROR extern blocks must be unsafe
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
//@ check-pass
unsafe extern "C" {
@@ -1,5 +1,5 @@
error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:8:5
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:7:5
|
LL | safe static TEST1: i32;
| ^^^^^^^^^^^^^^^^^^^^^^^
@@ -10,7 +10,7 @@ LL | unsafe extern "C" {
| ++++++
error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:10:5
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:9:5
|
LL | safe fn test1(i: i32);
| ^^^^^^^^^^^^^^^^^^^^^^
@@ -1,5 +1,5 @@
error: extern blocks must be unsafe
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:6:1
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:5:1
|
LL | / extern "C" {
LL | |
@@ -11,7 +11,7 @@ LL | | }
| |_^
error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:8:5
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:7:5
|
LL | safe static TEST1: i32;
| ^^^^^^^^^^^^^^^^^^^^^^^
@@ -22,7 +22,7 @@ LL | unsafe extern "C" {
| ++++++
error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:10:5
--> $DIR/safe-unsafe-on-unadorned-extern-block.rs:9:5
|
LL | safe fn test1(i: i32);
| ^^^^^^^^^^^^^^^^^^^^^^
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
extern "C" {
//[edition2024]~^ ERROR extern blocks must be unsafe
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe function or block
--> $DIR/unsafe-items.rs:18:5
--> $DIR/unsafe-items.rs:17:5
|
LL | test1(TEST1);
| ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL | test1(TEST1);
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: use of extern static is unsafe and requires unsafe function or block
--> $DIR/unsafe-items.rs:18:11
--> $DIR/unsafe-items.rs:17:11
|
LL | test1(TEST1);
| ^^^^^ use of extern static
@@ -1,5 +1,5 @@
error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe block
--> $DIR/unsafe-items.rs:18:5
--> $DIR/unsafe-items.rs:17:5
|
LL | test1(TEST1);
| ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL | test1(TEST1);
= note: consult the function's documentation for information on how to avoid undefined behavior
error[E0133]: use of extern static is unsafe and requires unsafe block
--> $DIR/unsafe-items.rs:18:11
--> $DIR/unsafe-items.rs:17:11
|
LL | test1(TEST1);
| ^^^^^ use of extern static
@@ -1,7 +1,6 @@
//@ revisions: edition2021 edition2024
//@[edition2021] edition:2021
//@[edition2024] edition:2024
//@[edition2024] compile-flags: -Zunstable-options
unsafe extern "C" {
unsafe static TEST1: i32;