diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/issues/issue-37291 | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/issues/issue-37291')
-rw-r--r-- | src/test/ui/issues/issue-37291/auxiliary/lib.rs | 42 | ||||
-rw-r--r-- | src/test/ui/issues/issue-37291/main.rs | 21 |
2 files changed, 0 insertions, 63 deletions
diff --git a/src/test/ui/issues/issue-37291/auxiliary/lib.rs b/src/test/ui/issues/issue-37291/auxiliary/lib.rs deleted file mode 100644 index 1b163ee13..000000000 --- a/src/test/ui/issues/issue-37291/auxiliary/lib.rs +++ /dev/null @@ -1,42 +0,0 @@ -#![crate_type = "lib"] - -use std::ops::Mul; - -pub trait A {} -pub trait B { - type AT: A; -} -pub trait C { - type BT: B; -} - -pub struct AV; -impl A for AV {} - -pub struct BV; -impl B for BV { - type AT = AV; -} - -pub struct CV; -impl C for CV { - type BT = BV; -} - -pub struct WrapperB<T>(pub T); -pub struct WrapperC<T>(pub T); - -impl<C1> Mul<WrapperB<<C1::BT as B>::AT>> for WrapperC<C1> - where C1: C -{ - type Output = u8; - fn mul(self, _: WrapperB<<C1::BT as B>::AT>) -> Self::Output { - loop {} - } -} -impl<C1> Mul<WrapperC<C1>> for WrapperC<C1> { - type Output = u8; - fn mul(self, _: WrapperC<C1>) -> Self::Output { - loop {} - } -} diff --git a/src/test/ui/issues/issue-37291/main.rs b/src/test/ui/issues/issue-37291/main.rs deleted file mode 100644 index 6fb6b50da..000000000 --- a/src/test/ui/issues/issue-37291/main.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass -#![allow(unused_imports)] -// aux-build:lib.rs - -// Regression test for #37291. The problem was that the starting -// environment for a specialization check was not including the -// where-clauses from the impl when attempting to normalize the impl's -// trait-ref, so things like `<C as Foo>::Item` could not resolve, -// since the `C: Foo` trait bound was not included in the environment. - -extern crate lib; - -use lib::{CV, WrapperB, WrapperC}; - -fn main() { - let a = WrapperC(CV); - let b = WrapperC(CV); - if false { - let _ = a * b; - } -} |