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