]> git.lizzy.rs Git - rust.git/blob - tests/ui/range/issue-54505-no-literals.rs
Rollup merge of #106940 - oli-obk:tait_error, r=compiler-errors
[rust.git] / tests / ui / range / issue-54505-no-literals.rs
1 // run-rustfix
2
3 // Regression test for changes introduced while fixing #54505
4
5 // This test uses non-literals for Ranges
6 // (expecting no parens with borrow suggestion)
7
8 use std::ops::RangeBounds;
9
10
11 // take a reference to any built-in range
12 fn take_range(_r: &impl RangeBounds<i8>) {}
13
14
15 fn main() {
16     take_range(std::ops::Range { start: 0, end: 1 });
17     //~^ ERROR mismatched types [E0308]
18     //~| HELP consider borrowing here
19     //~| SUGGESTION &std::ops::Range { start: 0, end: 1 }
20
21     take_range(::std::ops::Range { start: 0, end: 1 });
22     //~^ ERROR mismatched types [E0308]
23     //~| HELP consider borrowing here
24     //~| SUGGESTION &::std::ops::Range { start: 0, end: 1 }
25
26     take_range(std::ops::RangeFrom { start: 1 });
27     //~^ ERROR mismatched types [E0308]
28     //~| HELP consider borrowing here
29     //~| SUGGESTION &std::ops::RangeFrom { start: 1 }
30
31     take_range(::std::ops::RangeFrom { start: 1 });
32     //~^ ERROR mismatched types [E0308]
33     //~| HELP consider borrowing here
34     //~| SUGGESTION &::std::ops::RangeFrom { start: 1 }
35
36     take_range(std::ops::RangeFull {});
37     //~^ ERROR mismatched types [E0308]
38     //~| HELP consider borrowing here
39     //~| SUGGESTION &std::ops::RangeFull {}
40
41     take_range(::std::ops::RangeFull {});
42     //~^ ERROR mismatched types [E0308]
43     //~| HELP consider borrowing here
44     //~| SUGGESTION &::std::ops::RangeFull {}
45
46     take_range(std::ops::RangeInclusive::new(0, 1));
47     //~^ ERROR mismatched types [E0308]
48     //~| HELP consider borrowing here
49     //~| SUGGESTION &std::ops::RangeInclusive::new(0, 1)
50
51     take_range(::std::ops::RangeInclusive::new(0, 1));
52     //~^ ERROR mismatched types [E0308]
53     //~| HELP consider borrowing here
54     //~| SUGGESTION &::std::ops::RangeInclusive::new(0, 1)
55
56     take_range(std::ops::RangeTo { end: 5 });
57     //~^ ERROR mismatched types [E0308]
58     //~| HELP consider borrowing here
59     //~| SUGGESTION &std::ops::RangeTo { end: 5 }
60
61     take_range(::std::ops::RangeTo { end: 5 });
62     //~^ ERROR mismatched types [E0308]
63     //~| HELP consider borrowing here
64     //~| SUGGESTION &::std::ops::RangeTo { end: 5 }
65
66     take_range(std::ops::RangeToInclusive { end: 5 });
67     //~^ ERROR mismatched types [E0308]
68     //~| HELP consider borrowing here
69     //~| SUGGESTION &std::ops::RangeToInclusive { end: 5 }
70
71     take_range(::std::ops::RangeToInclusive { end: 5 });
72     //~^ ERROR mismatched types [E0308]
73     //~| HELP consider borrowing here
74     //~| SUGGESTION &::std::ops::RangeToInclusive { end: 5 }
75 }