mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 08:44:35 +00:00
#![feature(inline_const_pat)]
is no longer incomplete
This commit is contained in:
parent
11f32b73e0
commit
4feec41e05
@ -496,7 +496,7 @@ declare_features! (
|
|||||||
/// Allow anonymous constants from an inline `const` block
|
/// Allow anonymous constants from an inline `const` block
|
||||||
(unstable, inline_const, "1.49.0", Some(76001)),
|
(unstable, inline_const, "1.49.0", Some(76001)),
|
||||||
/// Allow anonymous constants from an inline `const` block in pattern position
|
/// Allow anonymous constants from an inline `const` block in pattern position
|
||||||
(incomplete, inline_const_pat, "1.58.0", Some(76001)),
|
(unstable, inline_const_pat, "1.58.0", Some(76001)),
|
||||||
/// Allows using `pointer` and `reference` in intra-doc links
|
/// Allows using `pointer` and `reference` in intra-doc links
|
||||||
(unstable, intra_doc_pointers, "1.51.0", Some(80896)),
|
(unstable, intra_doc_pointers, "1.51.0", Some(80896)),
|
||||||
// Allows setting the threshold for the `large_assignments` lint.
|
// Allows setting the threshold for the `large_assignments` lint.
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error[E0015]: cannot call non-const closure in constants
|
error[E0015]: cannot call non-const closure in constants
|
||||||
--> $DIR/invalid-inline-const-in-match-arm.rs:6:17
|
--> $DIR/invalid-inline-const-in-match-arm.rs:5:17
|
||||||
|
|
|
|
||||||
LL | const { (|| {})() } => {}
|
LL | const { (|| {})() } => {}
|
||||||
| ^^^^^^^^^
|
| ^^^^^^^^^
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(exclusive_range_pattern)]
|
#![feature(exclusive_range_pattern)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
// rust-lang/rust#82518: ICE with inline-const in match referencing const-generic parameter
|
// rust-lang/rust#82518: ICE with inline-const in match referencing const-generic parameter
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
error: constant pattern depends on a generic parameter
|
error: constant pattern depends on a generic parameter
|
||||||
--> $DIR/const-match-pat-generic.rs:8:9
|
--> $DIR/const-match-pat-generic.rs:7:9
|
||||||
|
|
|
|
||||||
LL | const { V } => {},
|
LL | const { V } => {},
|
||||||
| ^^^^^^^^^^^
|
| ^^^^^^^^^^^
|
||||||
|
|
||||||
error: constant pattern depends on a generic parameter
|
error: constant pattern depends on a generic parameter
|
||||||
--> $DIR/const-match-pat-generic.rs:20:9
|
--> $DIR/const-match-pat-generic.rs:19:9
|
||||||
|
|
|
|
||||||
LL | const { f(V) } => {},
|
LL | const { f(V) } => {},
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// check-pass
|
// check-pass
|
||||||
|
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
#![allow(incomplete_features)]
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
match 1u64 {
|
match 1u64 {
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(const_mut_refs)]
|
#![feature(const_mut_refs)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error[E0597]: `y` does not live long enough
|
error[E0597]: `y` does not live long enough
|
||||||
--> $DIR/const-match-pat-lifetime-err.rs:29:29
|
--> $DIR/const-match-pat-lifetime-err.rs:28:29
|
||||||
|
|
|
|
||||||
LL | fn match_invariant_ref<'a>() {
|
LL | fn match_invariant_ref<'a>() {
|
||||||
| -- lifetime `'a` defined here
|
| -- lifetime `'a` defined here
|
||||||
@ -15,7 +15,7 @@ LL | }
|
|||||||
| - `y` dropped here while still borrowed
|
| - `y` dropped here while still borrowed
|
||||||
|
|
||||||
error: lifetime may not live long enough
|
error: lifetime may not live long enough
|
||||||
--> $DIR/const-match-pat-lifetime-err.rs:39:12
|
--> $DIR/const-match-pat-lifetime-err.rs:38:12
|
||||||
|
|
|
|
||||||
LL | fn match_covariant_ref<'a>() {
|
LL | fn match_covariant_ref<'a>() {
|
||||||
| -- lifetime `'a` defined here
|
| -- lifetime `'a` defined here
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(const_mut_refs)]
|
#![feature(const_mut_refs)]
|
||||||
#![feature(inline_const)]
|
#![feature(inline_const)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// build-pass
|
// build-pass
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(inline_const_pat, exclusive_range_pattern)]
|
#![feature(inline_const_pat, exclusive_range_pattern)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
const MMIO_BIT1: u8 = 4;
|
const MMIO_BIT1: u8 = 4;
|
||||||
const MMIO_BIT2: u8 = 5;
|
const MMIO_BIT2: u8 = 5;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
//~^ WARN the feature `inline_const_pat` is incomplete
|
|
||||||
|
|
||||||
fn uwu() {}
|
fn uwu() {}
|
||||||
|
|
||||||
|
@ -1,17 +1,8 @@
|
|||||||
warning: the feature `inline_const_pat` is incomplete and may not be safe to use and/or cause compiler crashes
|
|
||||||
--> $DIR/pat-match-fndef.rs:1:12
|
|
||||||
|
|
|
||||||
LL | #![feature(inline_const_pat)]
|
|
||||||
| ^^^^^^^^^^^^^^^^
|
|
||||||
|
|
|
||||||
= note: see issue #76001 <https://github.com/rust-lang/rust/issues/76001> for more information
|
|
||||||
= note: `#[warn(incomplete_features)]` on by default
|
|
||||||
|
|
||||||
error: `fn() {uwu}` cannot be used in patterns
|
error: `fn() {uwu}` cannot be used in patterns
|
||||||
--> $DIR/pat-match-fndef.rs:9:9
|
--> $DIR/pat-match-fndef.rs:8:9
|
||||||
|
|
|
|
||||||
LL | const { uwu } => {}
|
LL | const { uwu } => {}
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: aborting due to 1 previous error; 1 warning emitted
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
const unsafe fn require_unsafe() -> usize {
|
const unsafe fn require_unsafe() -> usize {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error[E0133]: call to unsafe function `require_unsafe` is unsafe and requires unsafe function or block
|
error[E0133]: call to unsafe function `require_unsafe` is unsafe and requires unsafe function or block
|
||||||
--> $DIR/pat-unsafe-err.rs:11:13
|
--> $DIR/pat-unsafe-err.rs:10:13
|
||||||
|
|
|
|
||||||
LL | require_unsafe();
|
LL | require_unsafe();
|
||||||
| ^^^^^^^^^^^^^^^^ call to unsafe function
|
| ^^^^^^^^^^^^^^^^ call to unsafe function
|
||||||
@ -7,7 +7,7 @@ LL | require_unsafe();
|
|||||||
= note: consult the function's documentation for information on how to avoid undefined behavior
|
= note: consult the function's documentation for information on how to avoid undefined behavior
|
||||||
|
|
||||||
error[E0133]: call to unsafe function `require_unsafe` is unsafe and requires unsafe function or block
|
error[E0133]: call to unsafe function `require_unsafe` is unsafe and requires unsafe function or block
|
||||||
--> $DIR/pat-unsafe-err.rs:18:13
|
--> $DIR/pat-unsafe-err.rs:17:13
|
||||||
|
|
|
|
||||||
LL | require_unsafe()
|
LL | require_unsafe()
|
||||||
| ^^^^^^^^^^^^^^^^ call to unsafe function
|
| ^^^^^^^^^^^^^^^^ call to unsafe function
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// check-pass
|
// check-pass
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![warn(unused_unsafe)]
|
#![warn(unused_unsafe)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
warning: unnecessary `unsafe` block
|
warning: unnecessary `unsafe` block
|
||||||
--> $DIR/pat-unsafe.rs:16:17
|
--> $DIR/pat-unsafe.rs:15:17
|
||||||
|
|
|
|
||||||
LL | unsafe {}
|
LL | unsafe {}
|
||||||
| ^^^^^^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
|
|
|
||||||
note: the lint level is defined here
|
note: the lint level is defined here
|
||||||
--> $DIR/pat-unsafe.rs:4:9
|
--> $DIR/pat-unsafe.rs:3:9
|
||||||
|
|
|
|
||||||
LL | #![warn(unused_unsafe)]
|
LL | #![warn(unused_unsafe)]
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^
|
||||||
|
|
||||||
warning: unnecessary `unsafe` block
|
warning: unnecessary `unsafe` block
|
||||||
--> $DIR/pat-unsafe.rs:23:17
|
--> $DIR/pat-unsafe.rs:22:17
|
||||||
|
|
|
|
||||||
LL | unsafe {}
|
LL | unsafe {}
|
||||||
| ^^^^^^ unnecessary `unsafe` block
|
| ^^^^^^ unnecessary `unsafe` block
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// check-pass
|
// check-pass
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![deny(dead_code)]
|
#![deny(dead_code)]
|
||||||
|
|
||||||
const fn one() -> i32 {
|
const fn one() -> i32 {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
#![allow(incomplete_features)]
|
|
||||||
fn foo<const V: usize>() {
|
fn foo<const V: usize>() {
|
||||||
match 0 {
|
match 0 {
|
||||||
const { 1 << 5 } | _ => {}
|
const { 1 << 5 } | _ => {}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#![feature(exclusive_range_pattern)]
|
#![feature(exclusive_range_pattern)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![allow(overlapping_range_endpoints)]
|
#![allow(overlapping_range_endpoints)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -1,59 +1,59 @@
|
|||||||
error: literal out of range for `u8`
|
error: literal out of range for `u8`
|
||||||
--> $DIR/validate-range-endpoints.rs:9:12
|
--> $DIR/validate-range-endpoints.rs:8:12
|
||||||
|
|
|
|
||||||
LL | 1..257 => {}
|
LL | 1..257 => {}
|
||||||
| ^^^ this value does not fit into the type `u8` whose range is `0..=255`
|
| ^^^ this value does not fit into the type `u8` whose range is `0..=255`
|
||||||
|
|
||||||
error: literal out of range for `u8`
|
error: literal out of range for `u8`
|
||||||
--> $DIR/validate-range-endpoints.rs:11:13
|
--> $DIR/validate-range-endpoints.rs:10:13
|
||||||
|
|
|
|
||||||
LL | 1..=256 => {}
|
LL | 1..=256 => {}
|
||||||
| ^^^ this value does not fit into the type `u8` whose range is `0..=255`
|
| ^^^ this value does not fit into the type `u8` whose range is `0..=255`
|
||||||
|
|
||||||
error[E0030]: lower range bound must be less than or equal to upper
|
error[E0030]: lower range bound must be less than or equal to upper
|
||||||
--> $DIR/validate-range-endpoints.rs:20:9
|
--> $DIR/validate-range-endpoints.rs:19:9
|
||||||
|
|
|
|
||||||
LL | 1..=TOO_BIG => {}
|
LL | 1..=TOO_BIG => {}
|
||||||
| ^^^^^^^^^^^ lower bound larger than upper bound
|
| ^^^^^^^^^^^ lower bound larger than upper bound
|
||||||
|
|
||||||
error[E0030]: lower range bound must be less than or equal to upper
|
error[E0030]: lower range bound must be less than or equal to upper
|
||||||
--> $DIR/validate-range-endpoints.rs:22:9
|
--> $DIR/validate-range-endpoints.rs:21:9
|
||||||
|
|
|
|
||||||
LL | 1..=const { 256 } => {}
|
LL | 1..=const { 256 } => {}
|
||||||
| ^^^^^^^^^^^^^^^^^ lower bound larger than upper bound
|
| ^^^^^^^^^^^^^^^^^ lower bound larger than upper bound
|
||||||
|
|
||||||
error: literal out of range for `u64`
|
error: literal out of range for `u64`
|
||||||
--> $DIR/validate-range-endpoints.rs:28:32
|
--> $DIR/validate-range-endpoints.rs:27:32
|
||||||
|
|
|
|
||||||
LL | 10000000000000000000..=99999999999999999999 => {}
|
LL | 10000000000000000000..=99999999999999999999 => {}
|
||||||
| ^^^^^^^^^^^^^^^^^^^^ this value does not fit into the type `u64` whose range is `0..=18446744073709551615`
|
| ^^^^^^^^^^^^^^^^^^^^ this value does not fit into the type `u64` whose range is `0..=18446744073709551615`
|
||||||
|
|
||||||
error: literal out of range for `i8`
|
error: literal out of range for `i8`
|
||||||
--> $DIR/validate-range-endpoints.rs:34:12
|
--> $DIR/validate-range-endpoints.rs:33:12
|
||||||
|
|
|
|
||||||
LL | 0..129 => {}
|
LL | 0..129 => {}
|
||||||
| ^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
| ^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
||||||
|
|
||||||
error: literal out of range for `i8`
|
error: literal out of range for `i8`
|
||||||
--> $DIR/validate-range-endpoints.rs:36:13
|
--> $DIR/validate-range-endpoints.rs:35:13
|
||||||
|
|
|
|
||||||
LL | 0..=128 => {}
|
LL | 0..=128 => {}
|
||||||
| ^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
| ^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
||||||
|
|
||||||
error: literal out of range for `i8`
|
error: literal out of range for `i8`
|
||||||
--> $DIR/validate-range-endpoints.rs:38:9
|
--> $DIR/validate-range-endpoints.rs:37:9
|
||||||
|
|
|
|
||||||
LL | -129..0 => {}
|
LL | -129..0 => {}
|
||||||
| ^^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
| ^^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
||||||
|
|
||||||
error: literal out of range for `i8`
|
error: literal out of range for `i8`
|
||||||
--> $DIR/validate-range-endpoints.rs:40:9
|
--> $DIR/validate-range-endpoints.rs:39:9
|
||||||
|
|
|
|
||||||
LL | -10000..=-20 => {}
|
LL | -10000..=-20 => {}
|
||||||
| ^^^^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
| ^^^^^^ this value does not fit into the type `i8` whose range is `-128..=127`
|
||||||
|
|
||||||
error[E0004]: non-exhaustive patterns: `i8::MIN..=-17_i8` and `1_i8..=i8::MAX` not covered
|
error[E0004]: non-exhaustive patterns: `i8::MIN..=-17_i8` and `1_i8..=i8::MAX` not covered
|
||||||
--> $DIR/validate-range-endpoints.rs:51:11
|
--> $DIR/validate-range-endpoints.rs:50:11
|
||||||
|
|
|
|
||||||
LL | match 0i8 {
|
LL | match 0i8 {
|
||||||
| ^^^ patterns `i8::MIN..=-17_i8` and `1_i8..=i8::MAX` not covered
|
| ^^^ patterns `i8::MIN..=-17_i8` and `1_i8..=i8::MAX` not covered
|
||||||
@ -66,7 +66,7 @@ LL + i8::MIN..=-17_i8 | 1_i8..=i8::MAX => todo!()
|
|||||||
|
|
|
|
||||||
|
|
||||||
error[E0004]: non-exhaustive patterns: `i8::MIN..=-17_i8` not covered
|
error[E0004]: non-exhaustive patterns: `i8::MIN..=-17_i8` not covered
|
||||||
--> $DIR/validate-range-endpoints.rs:55:11
|
--> $DIR/validate-range-endpoints.rs:54:11
|
||||||
|
|
|
|
||||||
LL | match 0i8 {
|
LL | match 0i8 {
|
||||||
| ^^^ pattern `i8::MIN..=-17_i8` not covered
|
| ^^^ pattern `i8::MIN..=-17_i8` not covered
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
// edition:2021
|
// edition:2021
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![allow(unreachable_code)]
|
#![allow(unreachable_code)]
|
||||||
#![feature(const_async_blocks)]
|
#![feature(const_async_blocks)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
error: `{closure@$DIR/non-structural-match-types.rs:10:17: 10:19}` cannot be used in patterns
|
error: `{closure@$DIR/non-structural-match-types.rs:9:17: 9:19}` cannot be used in patterns
|
||||||
--> $DIR/non-structural-match-types.rs:10:9
|
--> $DIR/non-structural-match-types.rs:9:9
|
||||||
|
|
|
|
||||||
LL | const { || {} } => {}
|
LL | const { || {} } => {}
|
||||||
| ^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: `{async block@$DIR/non-structural-match-types.rs:13:17: 13:25}` cannot be used in patterns
|
error: `{async block@$DIR/non-structural-match-types.rs:12:17: 12:25}` cannot be used in patterns
|
||||||
--> $DIR/non-structural-match-types.rs:13:9
|
--> $DIR/non-structural-match-types.rs:12:9
|
||||||
|
|
|
|
||||||
LL | const { async {} } => {}
|
LL | const { async {} } => {}
|
||||||
| ^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
// unsafe because they're within a pattern for a layout constrained stuct.
|
// unsafe because they're within a pattern for a layout constrained stuct.
|
||||||
// check-pass
|
// check-pass
|
||||||
|
|
||||||
#![allow(incomplete_features)]
|
|
||||||
#![feature(rustc_attrs)]
|
#![feature(rustc_attrs)]
|
||||||
#![feature(inline_const_pat)]
|
#![feature(inline_const_pat)]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user