]> git.proxmox.com Git - rustc.git/blob - tests/ui/nll/user-annotations/adt-tuple-struct.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / nll / user-annotations / adt-tuple-struct.rs
1 // Unit test for the "user substitutions" that are annotated on each
2 // node.
3
4 struct SomeStruct<T>(T);
5
6 fn no_annot() {
7 let c = 66;
8 SomeStruct(&c);
9 }
10
11 fn annot_underscore() {
12 let c = 66;
13 SomeStruct::<_>(&c);
14 }
15
16 fn annot_reference_any_lifetime() {
17 let c = 66;
18 SomeStruct::<&u32>(&c);
19 }
20
21 fn annot_reference_static_lifetime() {
22 let c = 66;
23 SomeStruct::<&'static u32>(&c); //~ ERROR
24 }
25
26 fn annot_reference_named_lifetime<'a>(_d: &'a u32) {
27 let c = 66;
28 SomeStruct::<&'a u32>(&c); //~ ERROR
29 }
30
31 fn annot_reference_named_lifetime_ok<'a>(c: &'a u32) {
32 SomeStruct::<&'a u32>(c);
33 }
34
35 fn annot_reference_named_lifetime_in_closure<'a>(_: &'a u32) {
36 let _closure = || {
37 let c = 66;
38 SomeStruct::<&'a u32>(&c); //~ ERROR
39 };
40 }
41
42 fn annot_reference_named_lifetime_in_closure_ok<'a>(c: &'a u32) {
43 let _closure = || {
44 SomeStruct::<&'a u32>(c);
45 };
46 }
47
48 fn main() { }