forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of rust-lang#123585 - matthiaskrgr:rollup-dexaj7a, r=matth…
…iaskrgr Rollup of 4 pull requests Successful merges: - rust-lang#123410 (Relax framework linking test) - rust-lang#123446 (Fix incorrect 'llvm_target' value used on watchOS target) - rust-lang#123579 (add some more tests) - rust-lang#123581 (Add `f16` and `f128` to rustdoc's `PrimitiveType`) r? `@ghost` `@rustbot` modify labels: rollup
- Loading branch information
Showing
19 changed files
with
279 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 4 additions & 3 deletions
7
compiler/rustc_target/src/spec/targets/arm64_32_apple_watchos.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
tests/ui/const-generics/generic_const_exprs/unknown-alias-defkind-anonconst-ice-116710.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// ICE unknown alias DefKind: AnonConst | ||
// issue: rust-lang/rust#116710 | ||
#![feature(generic_const_exprs)] | ||
#![allow(incomplete_features)] | ||
|
||
struct A<const N: u32 = 1, const M: u32 = u8>; | ||
//~^ ERROR expected value, found builtin type `u8` | ||
|
||
trait Trait {} | ||
impl<const N: u32> Trait for A<N> {} | ||
|
||
impl<const N: u32> Trait for A<N> {} | ||
//~^ ERROR conflicting implementations of trait `Trait` for type `A<_>` | ||
|
||
pub fn main() {} |
19 changes: 19 additions & 0 deletions
19
...s/ui/const-generics/generic_const_exprs/unknown-alias-defkind-anonconst-ice-116710.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
error[E0423]: expected value, found builtin type `u8` | ||
--> $DIR/unknown-alias-defkind-anonconst-ice-116710.rs:6:43 | ||
| | ||
LL | struct A<const N: u32 = 1, const M: u32 = u8>; | ||
| ^^ not a value | ||
|
||
error[E0119]: conflicting implementations of trait `Trait` for type `A<_>` | ||
--> $DIR/unknown-alias-defkind-anonconst-ice-116710.rs:12:1 | ||
| | ||
LL | impl<const N: u32> Trait for A<N> {} | ||
| --------------------------------- first implementation here | ||
LL | | ||
LL | impl<const N: u32> Trait for A<N> {} | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `A<_>` | ||
|
||
error: aborting due to 2 previous errors | ||
|
||
Some errors have detailed explanations: E0119, E0423. | ||
For more information about an error, try `rustc --explain E0119`. |
19 changes: 19 additions & 0 deletions
19
tests/ui/generic-const-items/assoc-const-no-infer-ice-115806.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// ICE: assertion failed: !value.has_infer() | ||
// issue: rust-lang/rust#115806 | ||
#![feature(associated_const_equality)] | ||
#![allow(incomplete_features)] | ||
|
||
pub struct NoPin; | ||
|
||
impl<TA> Pins<TA> for NoPin {} | ||
|
||
pub trait PinA<PER> { | ||
const A: &'static () = &(); | ||
} | ||
|
||
pub trait Pins<USART> {} | ||
|
||
impl<USART, T> Pins<USART> for T where T: PinA<USART, A = { &() }> {} | ||
//~^ ERROR conflicting implementations of trait `Pins<_>` for type `NoPin` | ||
|
||
pub fn main() {} |
14 changes: 14 additions & 0 deletions
14
tests/ui/generic-const-items/assoc-const-no-infer-ice-115806.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
error[E0119]: conflicting implementations of trait `Pins<_>` for type `NoPin` | ||
--> $DIR/assoc-const-no-infer-ice-115806.rs:16:1 | ||
| | ||
LL | impl<TA> Pins<TA> for NoPin {} | ||
| --------------------------- first implementation here | ||
... | ||
LL | impl<USART, T> Pins<USART> for T where T: PinA<USART, A = { &() }> {} | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `NoPin` | ||
| | ||
= note: downstream crates may implement trait `PinA<_>` for type `NoPin` | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0119`. |
42 changes: 42 additions & 0 deletions
42
tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// ICE failed to resolve instance for <fn() -> impl MyFnOnce ... | ||
// issue: rust-lang/rust#105488 | ||
//@ build-fail | ||
//~^^^ ERROR overflow evaluating the requirement `fn() -> impl MyFnOnce | ||
|
||
pub trait MyFnOnce { | ||
type Output; | ||
|
||
fn call_my_fn_once(self) -> Self::Output; | ||
} | ||
|
||
pub struct WrapFnOnce<F>(F); | ||
|
||
impl<F: FnOnce() -> D, D: MyFnOnce> MyFnOnce for WrapFnOnce<F> { | ||
type Output = D::Output; | ||
|
||
fn call_my_fn_once(self) -> Self::Output { | ||
D::call_my_fn_once(self.0()) | ||
} | ||
} | ||
|
||
impl<F: FnOnce() -> D, D: MyFnOnce> MyFnOnce for F { | ||
type Output = D::Output; | ||
|
||
fn call_my_fn_once(self) -> Self::Output { | ||
D::call_my_fn_once(self()) | ||
} | ||
} | ||
|
||
pub fn my_fn_1() -> impl MyFnOnce { | ||
my_fn_2 | ||
} | ||
|
||
pub fn my_fn_2() -> impl MyFnOnce { | ||
WrapFnOnce(my_fn_1) | ||
} | ||
|
||
fn main() { | ||
let v = my_fn_1(); | ||
|
||
let _ = v.call_my_fn_once(); | ||
} |
16 changes: 16 additions & 0 deletions
16
tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
error[E0275]: overflow evaluating the requirement `fn() -> impl MyFnOnce {my_fn_2}: MyFnOnce` | ||
| | ||
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`failed_to_resolve_instance_ice_105488`) | ||
note: required for `WrapFnOnce<fn() -> impl MyFnOnce {my_fn_1}>` to implement `MyFnOnce` | ||
--> $DIR/failed-to-resolve-instance-ice-105488.rs:14:37 | ||
| | ||
LL | impl<F: FnOnce() -> D, D: MyFnOnce> MyFnOnce for WrapFnOnce<F> { | ||
| -------- ^^^^^^^^ ^^^^^^^^^^^^^ | ||
| | | ||
| unsatisfied trait bound introduced here | ||
= note: 126 redundant requirements hidden | ||
= note: required for `WrapFnOnce<fn() -> impl MyFnOnce {my_fn_1}>` to implement `MyFnOnce` | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0275`. |
20 changes: 20 additions & 0 deletions
20
tests/ui/impl-trait/failed-to-resolve-instance-ice-123145.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// ICE failed to resolve instance for ... | ||
// issue: rust-lang/rust#123145 | ||
//@ build-fail | ||
//~^^^ ERROR overflow evaluating the requirement `(fn() -> impl Handler | ||
|
||
trait Handler { | ||
fn handle(&self) {} | ||
} | ||
|
||
impl<H: Handler, F: Fn() -> H> Handler for F {} | ||
|
||
impl<L: Handler> Handler for (L,) {} | ||
|
||
fn one() -> impl Handler { | ||
(one,) | ||
} | ||
|
||
fn main() { | ||
one.handle(); | ||
} |
15 changes: 15 additions & 0 deletions
15
tests/ui/impl-trait/failed-to-resolve-instance-ice-123145.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
error[E0275]: overflow evaluating the requirement `(fn() -> impl Handler {one},): Handler` | ||
| | ||
note: required for `fn() -> impl Handler {one}` to implement `Handler` | ||
--> $DIR/failed-to-resolve-instance-ice-123145.rs:10:32 | ||
| | ||
LL | impl<H: Handler, F: Fn() -> H> Handler for F {} | ||
| ------- ^^^^^^^ ^ | ||
| | | ||
| unsatisfied trait bound introduced here | ||
= note: 2 redundant requirements hidden | ||
= note: required for `fn() -> impl Handler {one}` to implement `Handler` | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0275`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// ICE !base.layout().is_sized() | ||
// issue: rust-lang/rust#123078 | ||
|
||
struct S { | ||
a: [u8], | ||
//~^ ERROR the size for values of type `[u8]` cannot be known at compilation time | ||
b: (), | ||
} | ||
|
||
const C: S = unsafe { std::mem::transmute(()) }; | ||
//~^ ERROR cannot transmute between types of different sizes, or dependently-sized types | ||
const _: [(); { | ||
C; | ||
0 | ||
}] = []; | ||
|
||
pub fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
error[E0277]: the size for values of type `[u8]` cannot be known at compilation time | ||
--> $DIR/base-layout-is-sized-ice-123078.rs:5:8 | ||
| | ||
LL | a: [u8], | ||
| ^^^^ doesn't have a size known at compile-time | ||
| | ||
= help: the trait `Sized` is not implemented for `[u8]` | ||
= note: only the last field of a struct may have a dynamically sized type | ||
= help: change the field's type to have a statically known size | ||
help: borrowed types always have a statically known size | ||
| | ||
LL | a: &[u8], | ||
| + | ||
help: the `Box` type always has a statically known size and allocates its contents in the heap | ||
| | ||
LL | a: Box<[u8]>, | ||
| ++++ + | ||
|
||
error[E0512]: cannot transmute between types of different sizes, or dependently-sized types | ||
--> $DIR/base-layout-is-sized-ice-123078.rs:10:23 | ||
| | ||
LL | const C: S = unsafe { std::mem::transmute(()) }; | ||
| ^^^^^^^^^^^^^^^^^^^ | ||
| | ||
= note: source type: `()` (0 bits) | ||
= note: target type: `S` (this type does not have a fixed size) | ||
|
||
error: aborting due to 2 previous errors | ||
|
||
Some errors have detailed explanations: E0277, E0512. | ||
For more information about an error, try `rustc --explain E0277`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// ICE Unexpected unsized type tail: &ReStatic [u8] | ||
// issue: rust-lang/rust#122488 | ||
use std::ops::Deref; | ||
|
||
struct ArenaSet<U: Deref, V: ?Sized = <U as Deref>::Target>(V, U); | ||
//~^ ERROR the size for values of type `V` cannot be known at compilation time | ||
|
||
const DATA: *const ArenaSet<Vec<u8>> = std::ptr::null_mut(); | ||
|
||
pub fn main() {} |
27 changes: 27 additions & 0 deletions
27
tests/ui/layout/issue-unsized-tail-restatic-ice-122488.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
error[E0277]: the size for values of type `V` cannot be known at compilation time | ||
--> $DIR/issue-unsized-tail-restatic-ice-122488.rs:5:61 | ||
| | ||
LL | struct ArenaSet<U: Deref, V: ?Sized = <U as Deref>::Target>(V, U); | ||
| -------------------------------- ^ doesn't have a size known at compile-time | ||
| | | ||
| this type parameter needs to be `Sized` | ||
| | ||
= note: only the last field of a struct may have a dynamically sized type | ||
= help: change the field's type to have a statically known size | ||
help: consider removing the `?Sized` bound to make the type parameter `Sized` | ||
| | ||
LL - struct ArenaSet<U: Deref, V: ?Sized = <U as Deref>::Target>(V, U); | ||
LL + struct ArenaSet<U: Deref, V = <U as Deref>::Target>(V, U); | ||
| | ||
help: borrowed types always have a statically known size | ||
| | ||
LL | struct ArenaSet<U: Deref, V: ?Sized = <U as Deref>::Target>(&V, U); | ||
| + | ||
help: the `Box` type always has a statically known size and allocates its contents in the heap | ||
| | ||
LL | struct ArenaSet<U: Deref, V: ?Sized = <U as Deref>::Target>(Box<V>, U); | ||
| ++++ + | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0277`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters