mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Regression test for issue 55552.
This commit is contained in:
parent
09edfb885c
commit
1bbaa55341
@ -0,0 +1,31 @@
|
||||
// compile-pass
|
||||
|
||||
// rust-lang/rust#55552: The strategy pnkfelix landed in PR #55274
|
||||
// (for ensuring that NLL respects user-provided lifetime annotations)
|
||||
// did not handle the case where the ascribed type has some expliit
|
||||
// wildcards (`_`) mixed in, and it caused an internal compiler error
|
||||
// (ICE).
|
||||
//
|
||||
// This test is just checking that we do not ICE when such things
|
||||
// occur.
|
||||
|
||||
struct X;
|
||||
struct Y;
|
||||
struct Z;
|
||||
|
||||
struct Pair { x: X, y: Y }
|
||||
|
||||
pub fn join<A, B, RA, RB>(oper_a: A, oper_b: B) -> (RA, RB)
|
||||
where A: FnOnce() -> RA + Send,
|
||||
B: FnOnce() -> RB + Send,
|
||||
RA: Send,
|
||||
RB: Send
|
||||
{
|
||||
(oper_a(), oper_b())
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ((_x, _y), _z): (_, Z) = join(|| (X, Y), || Z);
|
||||
|
||||
let (Pair { x: _x, y: _y }, Z): (_, Z) = join(|| Pair { x: X, y: Y }, || Z);
|
||||
}
|
Loading…
Reference in New Issue
Block a user