]> git.lizzy.rs Git - rust.git/blob - tests/ui/nll/user-annotations/adt-brace-enums.rs
Rollup merge of #106946 - dtolnay:hashlinecolumn, r=m-ou-se
[rust.git] / tests / ui / nll / user-annotations / adt-brace-enums.rs
1 // Unit test for the "user substitutions" that are annotated on each
2 // node.
3
4 enum SomeEnum<T> {
5     SomeVariant { t: T }
6 }
7
8 fn no_annot() {
9     let c = 66;
10     SomeEnum::SomeVariant { t: &c };
11 }
12
13 fn annot_underscore() {
14     let c = 66;
15     SomeEnum::SomeVariant::<_> { t: &c };
16 }
17
18 fn annot_reference_any_lifetime() {
19     let c = 66;
20     SomeEnum::SomeVariant::<&u32> { t: &c };
21 }
22
23 fn annot_reference_static_lifetime() {
24     let c = 66;
25     SomeEnum::SomeVariant::<&'static u32> { t: &c }; //~ ERROR
26 }
27
28 fn annot_reference_named_lifetime<'a>(_d: &'a u32) {
29     let c = 66;
30     SomeEnum::SomeVariant::<&'a u32> { t: &c }; //~ ERROR
31 }
32
33 fn annot_reference_named_lifetime_ok<'a>(c: &'a u32) {
34     SomeEnum::SomeVariant::<&'a u32> { t: c };
35 }
36
37 fn annot_reference_named_lifetime_in_closure<'a>(_: &'a u32) {
38     let _closure = || {
39         let c = 66;
40         SomeEnum::SomeVariant::<&'a u32> { t: &c }; //~ ERROR
41     };
42 }
43
44 fn annot_reference_named_lifetime_in_closure_ok<'a>(c: &'a u32) {
45     let _closure = || {
46         SomeEnum::SomeVariant::<&'a u32> { t: c };
47     };
48 }
49
50 fn main() { }