]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-36744-bitcast-args-if-needed.rs
Rollup merge of #92942 - Xaeroxe:raw_arg, r=dtolnay
[rust.git] / src / test / ui / issues / issue-36744-bitcast-args-if-needed.rs
1 // run-pass
2 // This tests for an ICE (and, if ignored, subsequent LLVM abort) when
3 // a lifetime-parametric fn is passed into a context whose expected
4 // type has a differing lifetime parameterization.
5
6 struct A<'a> {
7     _a: &'a i32,
8 }
9
10 fn call<T>(s: T, functions: &Vec<for <'n> fn(&'n T)>) {
11     for function in functions {
12         function(&s);
13     }
14 }
15
16 fn f(a: &A) { println!("a holds {}", a._a); }
17
18 fn main() {
19     let a = A { _a: &10 };
20
21     let vec: Vec<for <'u,'v> fn(&'u A<'v>)> = vec![f];
22     call(a, &vec);
23 }