Auto merge of #61460 - Centril:rollup-8txhjx4, r=Centril
Rollup of 6 pull requests Successful merges: - #61380 (Fix some issues with `unwrap_usize` instead of `assert_usize`) - #61423 (codegen: change `$6d$` to `$u6d$`) - #61438 (Point at individual type args on arg count mismatch) - #61441 (Tweak wording when encountering `fn` call in pattern) - #61451 (Fix missing semicolon in doc) - #61458 (Fix typo in AsRef doc) Failed merges: r? @ghost
This commit is contained in:
commit
d461555e44
33 changed files with 313 additions and 92 deletions
|
|
@ -36,13 +36,13 @@ LL | fn wrong_bound1<'b,'c,'d:'a+'c>(self, b: Inv<'b>, c: Inv<'c>, d: Inv<'d
|
|||
| ^^
|
||||
|
||||
error[E0195]: lifetime parameters or bounds on method `wrong_bound2` do not match the trait declaration
|
||||
--> $DIR/regions-bound-missing-bound-in-impl.rs:41:5
|
||||
--> $DIR/regions-bound-missing-bound-in-impl.rs:41:20
|
||||
|
|
||||
LL | fn wrong_bound2<'b,'c,'d:'a+'b>(self, b: Inv<'b>, c: Inv<'c>, d: Inv<'d>);
|
||||
| ---------------- lifetimes in impl do not match this method in trait
|
||||
...
|
||||
LL | fn wrong_bound2(self, b: Inv, c: Inv, d: Inv) {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetimes do not match method in trait
|
||||
| ^ lifetimes do not match method in trait
|
||||
|
||||
error[E0276]: impl has stricter requirements than trait
|
||||
--> $DIR/regions-bound-missing-bound-in-impl.rs:48:5
|
||||
|
|
|
|||
15
src/test/ui/const-generics/issue-61422.rs
Normal file
15
src/test/ui/const-generics/issue-61422.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// run-pass
|
||||
|
||||
#![feature(const_generics)]
|
||||
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
|
||||
use std::mem;
|
||||
|
||||
fn foo<const SIZE: usize>() {
|
||||
let arr: [u8; SIZE] = unsafe {
|
||||
let mut array: [u8; SIZE] = mem::uninitialized();
|
||||
array
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
6
src/test/ui/const-generics/issue-61422.stderr
Normal file
6
src/test/ui/const-generics/issue-61422.stderr
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
--> $DIR/issue-61422.rs:3:12
|
||||
|
|
||||
LL | #![feature(const_generics)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
19
src/test/ui/const-generics/mut-ref-const-param-array.rs
Normal file
19
src/test/ui/const-generics/mut-ref-const-param-array.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// run-pass
|
||||
|
||||
#![feature(const_generics)]
|
||||
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
|
||||
use std::ops::AddAssign;
|
||||
|
||||
fn inc<T: AddAssign + Clone, const N: usize>(v: &mut [T; N]) -> &mut [T; N] {
|
||||
for x in v.iter_mut() {
|
||||
*x += x.clone();
|
||||
}
|
||||
v
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut v = [1, 2, 3];
|
||||
inc(&mut v);
|
||||
assert_eq!(v, [2, 4, 6]);
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
--> $DIR/mut-ref-const-param-array.rs:3:12
|
||||
|
|
||||
LL | #![feature(const_generics)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
// run-pass
|
||||
|
||||
#![feature(const_generics)]
|
||||
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
|
||||
use std::mem::MaybeUninit;
|
||||
|
||||
#[repr(transparent)]
|
||||
pub struct MaybeUninitWrapper<const N: usize>(MaybeUninit<[u64; N]>);
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
--> $DIR/transparent-maybeunit-array-wrapper.rs:3:12
|
||||
|
|
||||
LL | #![feature(const_generics)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
|
|
@ -8,5 +8,15 @@ impl Foo for Bar {
|
|||
fn foo(x: bool) -> Self { Bar } //~ ERROR E0049
|
||||
}
|
||||
|
||||
trait Fuzz {
|
||||
fn fuzz<A: Default, B>(x: A, y: B) -> Self;
|
||||
}
|
||||
|
||||
struct Baz;
|
||||
|
||||
impl Fuzz for Baz {
|
||||
fn fuzz(x: bool, y: bool) -> Self { Baz } //~ ERROR E0049
|
||||
}
|
||||
|
||||
fn main() {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,23 @@
|
|||
error[E0049]: method `foo` has 0 type parameters but its trait declaration has 1 type parameter
|
||||
--> $DIR/E0049.rs:8:5
|
||||
--> $DIR/E0049.rs:8:11
|
||||
|
|
||||
LL | fn foo<T: Default>(x: T) -> Self;
|
||||
| --------------------------------- expected 1 type parameter
|
||||
| - expected 1 type parameter
|
||||
...
|
||||
LL | fn foo(x: bool) -> Self { Bar }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ found 0 type parameters
|
||||
| ^ found 0 type parameters
|
||||
|
||||
error: aborting due to previous error
|
||||
error[E0049]: method `fuzz` has 0 type parameters but its trait declaration has 2 type parameters
|
||||
--> $DIR/E0049.rs:18:12
|
||||
|
|
||||
LL | fn fuzz<A: Default, B>(x: A, y: B) -> Self;
|
||||
| - -
|
||||
| |
|
||||
| expected 2 type parameters
|
||||
...
|
||||
LL | fn fuzz(x: bool, y: bool) -> Self { Baz }
|
||||
| ^ found 0 type parameters
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0049`.
|
||||
|
|
|
|||
11
src/test/ui/error-codes/E0730.rs
Normal file
11
src/test/ui/error-codes/E0730.rs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#![feature(const_generics)]
|
||||
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
|
||||
fn is_123<const N: usize>(x: [u32; N]) -> bool {
|
||||
match x {
|
||||
[1, 2, 3] => true, //~ ERROR cannot pattern-match on an array without a fixed length
|
||||
_ => false
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
15
src/test/ui/error-codes/E0730.stderr
Normal file
15
src/test/ui/error-codes/E0730.stderr
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
--> $DIR/E0730.rs:1:12
|
||||
|
|
||||
LL | #![feature(const_generics)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error[E0730]: cannot pattern-match on an array without a fixed length
|
||||
--> $DIR/E0730.rs:6:9
|
||||
|
|
||||
LL | [1, 2, 3] => true,
|
||||
| ^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0730`.
|
||||
|
|
@ -2,7 +2,9 @@ error[E0164]: expected tuple struct/variant, found method `<A>::new`
|
|||
--> $DIR/fn-in-pat.rs:11:9
|
||||
|
|
||||
LL | A::new() => (),
|
||||
| ^^^^^^^^ not a tuple variant or struct
|
||||
| ^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0 type parameters
|
||||
--> $DIR/issue-36708.rs:8:11
|
||||
--> $DIR/issue-36708.rs:8:12
|
||||
|
|
||||
LL | fn foo<T>() {}
|
||||
| ^^^ found 1 type parameter, expected 0
|
||||
| ^ found 1 type parameter, expected 0
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ error[E0164]: expected tuple struct/variant, found method `<Path>::new`
|
|||
--> $DIR/issue-55587.rs:4:9
|
||||
|
|
||||
LL | let Path::new();
|
||||
| ^^^^^^^^^^^ not a tuple variant or struct
|
||||
| ^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ impl Foo for u32 {
|
|||
fn foo(&self, t: impl Clone) {}
|
||||
//~^ ERROR method `foo` has 1 type parameter but its trait declaration has 0 type parameters
|
||||
//~| NOTE found 1 type parameter
|
||||
//~| NOTE `impl Trait` introduces an implicit type parameter
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0 type parameters
|
||||
--> $DIR/type-arg-mismatch-due-to-impl-trait.rs:10:5
|
||||
--> $DIR/type-arg-mismatch-due-to-impl-trait.rs:10:22
|
||||
|
|
||||
LL | fn foo(&self, t: Self::T);
|
||||
| -------------------------- expected 0 type parameters
|
||||
| - expected 0 type parameters
|
||||
...
|
||||
LL | fn foo(&self, t: impl Clone) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found 1 type parameter
|
||||
| ^^^^^^^^^^
|
||||
| |
|
||||
| found 1 type parameter
|
||||
| `impl Trait` introduces an implicit type parameter
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,17 @@ error[E0164]: expected tuple struct/variant, found method `<Path>::new`
|
|||
--> $DIR/match-fn-call.rs:6:9
|
||||
|
|
||||
LL | Path::new("foo") => println!("foo"),
|
||||
| ^^^^^^^^^^^^^^^^ not a tuple variant or struct
|
||||
| ^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
|
||||
error[E0164]: expected tuple struct/variant, found method `<Path>::new`
|
||||
--> $DIR/match-fn-call.rs:8:9
|
||||
|
|
||||
LL | Path::new("bar") => println!("bar"),
|
||||
| ^^^^^^^^^^^^^^^^ not a tuple variant or struct
|
||||
| ^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
error: symbol-name(_ZN11issue_609253foo36Foo$LT$issue_60925..llv$6d$..Foo$GT$3foo17h059a991a004536adE)
|
||||
error: symbol-name(_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo17h059a991a004536adE)
|
||||
--> $DIR/issue-60925.rs:21:9
|
||||
|
|
||||
LL | #[rustc_symbol_name]
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: demangling(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo::h059a991a004536ad)
|
||||
error: demangling(issue_60925::foo::Foo<issue_60925::llv$u6d$..Foo$GT$::foo::h059a991a004536ad)
|
||||
--> $DIR/issue-60925.rs:21:9
|
||||
|
|
||||
LL | #[rustc_symbol_name]
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: demangling-alt(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo)
|
||||
error: demangling-alt(issue_60925::foo::Foo<issue_60925::llv$u6d$..Foo$GT$::foo)
|
||||
--> $DIR/issue-60925.rs:21:9
|
||||
|
|
||||
LL | #[rustc_symbol_name]
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ mod foo {
|
|||
|
||||
impl Foo<::llvm::Foo> {
|
||||
#[rustc_symbol_name]
|
||||
//[legacy]~^ ERROR symbol-name(_ZN11issue_609253foo36Foo$LT$issue_60925..llv$6d$..Foo$GT$3foo
|
||||
//[legacy]~| ERROR demangling(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo
|
||||
//[legacy]~| ERROR demangling-alt(issue_60925::foo::Foo<issue_60925::llv$6d$..Foo$GT$::foo)
|
||||
//[legacy]~^ ERROR symbol-name(_ZN11issue_609253foo37Foo$LT$issue_60925..llv$u6d$..Foo$GT$3foo
|
||||
//[legacy]~| ERROR demangling(issue_60925::foo::Foo<issue_60925::llv$u6d$..Foo$GT$::foo
|
||||
//[legacy]~| ERROR demangling-alt(issue_60925::foo::Foo<issue_60925::llv$u6d$..Foo$GT$::foo)
|
||||
//[v0]~^^^^ ERROR symbol-name(_RNvMNtCs4fqI2P2rA04_11issue_609253fooINtB2_3FooNtNtB4_4llvm3FooE3foo)
|
||||
//[v0]~| ERROR demangling(<issue_60925[317d481089b8c8fe]::foo::Foo<issue_60925[317d481089b8c8fe]::llvm::Foo>>::foo)
|
||||
//[v0]~| ERROR demangling-alt(<issue_60925::foo::Foo<issue_60925::llvm::Foo>>::foo)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue