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 8use std::ops::RangeBounds; 9 10 11// take a reference to any built-in range 12fn take_range(_r: &impl RangeBounds<i8>) {} 13 14 15fn 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} 76