From a4b7ed7a42c716ab9f05e351f003d589124fd55d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:18:58 +0200 Subject: Adding upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- src/test/ui/nll/ty-outlives/issue-55756.rs | 37 ------------------------------ 1 file changed, 37 deletions(-) delete mode 100644 src/test/ui/nll/ty-outlives/issue-55756.rs (limited to 'src/test/ui/nll/ty-outlives/issue-55756.rs') diff --git a/src/test/ui/nll/ty-outlives/issue-55756.rs b/src/test/ui/nll/ty-outlives/issue-55756.rs deleted file mode 100644 index e1a3bc3c4..000000000 --- a/src/test/ui/nll/ty-outlives/issue-55756.rs +++ /dev/null @@ -1,37 +0,0 @@ -// Regression test for #55756. -// -// In this test, the result of `self.callee` is a projection `>::Guard`. As it may contain a destructor, the dropck -// rules require that this type outlivess the scope of `state`. Unfortunately, -// our region inference is not smart enough to figure out how to -// translate a requirement like -// -// >::guard: 'r -// -// into a requirement that `'0: 'r` -- in particular, it fails to do -// so because it *also* knows that `>::Guard: 'a` -// from the trait definition. Faced with so many choices, the current -// solver opts to do nothing. -// -// Fixed by tweaking the solver to recognize that the constraint from -// the environment duplicates one from the trait. -// -// check-pass - -#![crate_type="lib"] - -pub trait Database<'a> { - type Guard: 'a; -} - -pub struct Stateful<'a, D: 'a>(&'a D); - -impl<'b, D: for <'a> Database<'a>> Stateful<'b, D> { - pub fn callee<'a>(&'a self) -> >::Guard { - unimplemented!() - } - pub fn caller<'a>(&'a self) -> >::Guard { - let state = self.callee(); - unimplemented!() - } -} -- cgit v1.2.3