diff options
| author | Ralf Jung <post@ralfj.de> | 2022-07-02 15:21:16 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-02 15:21:16 -0400 |
| commit | 27983d3498eb684d76e7ec8caefe4f75777511d9 (patch) | |
| tree | 461a8f5439664f5327a4ad733a43b5b0d6f5a464 | |
| parent | 6a1092056441652fe5fe5c5b422644951e6b99ce (diff) | |
| parent | 9facb6c7ddcd63020b406746926bcee5dc288044 (diff) | |
| download | rust-27983d3498eb684d76e7ec8caefe4f75777511d9.tar.gz rust-27983d3498eb684d76e7ec8caefe4f75777511d9.zip | |
Rollup merge of #98701 - TaKO8Ki:add-regression-test-for-50439, r=Mark-Simulacrum
Add regression test for #50439 closes #50439
| -rw-r--r-- | src/test/ui/consts/issue-50439.rs | 29 | ||||
| -rw-r--r-- | src/test/ui/consts/issue-50439.stderr | 10 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/test/ui/consts/issue-50439.rs b/src/test/ui/consts/issue-50439.rs new file mode 100644 index 00000000000..0be7c405473 --- /dev/null +++ b/src/test/ui/consts/issue-50439.rs @@ -0,0 +1,29 @@ +#![feature(specialization)] +#![allow(incomplete_features)] + +pub trait ReflectDrop { + const REFLECT_DROP: bool = false; +} + +impl<T> ReflectDrop for T where T: Clone {} + +pub trait PinDropInternal { + fn is_valid() + where + Self: ReflectDrop; +} + +struct Bears<T>(T); + +default impl<T> ReflectDrop for Bears<T> {} + +impl<T: Sized> PinDropInternal for Bears<T> { + fn is_valid() + where + Self: ReflectDrop, + { + let _ = [(); 0 - !!(<Bears<T> as ReflectDrop>::REFLECT_DROP) as usize]; //~ ERROR constant expression depends on a generic parameter + } +} + +fn main() {} diff --git a/src/test/ui/consts/issue-50439.stderr b/src/test/ui/consts/issue-50439.stderr new file mode 100644 index 00000000000..3fbdf33b2d8 --- /dev/null +++ b/src/test/ui/consts/issue-50439.stderr @@ -0,0 +1,10 @@ +error: constant expression depends on a generic parameter + --> $DIR/issue-50439.rs:25:22 + | +LL | let _ = [(); 0 - !!(<Bears<T> as ReflectDrop>::REFLECT_DROP) as usize]; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this may fail depending on what value the parameter takes + +error: aborting due to previous error + |
