Use absolute path to FullRange, rather than assuming it is in the prelude
Closes #21263 [breaking-change] If you are using `core::ops::FullRange` you should change to using `core::ops::RangeFull`
This commit is contained in:
@@ -2531,10 +2531,23 @@ impl<'a> Parser<'a> {
|
||||
// FIXME(#20516) It would be better to use a lang item or
|
||||
// something for FullRange.
|
||||
hi = self.last_span.hi;
|
||||
let range = ExprStruct(ident_to_path(mk_sp(lo, hi),
|
||||
token::special_idents::FullRange),
|
||||
vec![],
|
||||
None);
|
||||
|
||||
let idents = vec![token::str_to_ident("core"),
|
||||
token::str_to_ident("ops"),
|
||||
token::str_to_ident("FullRange")];
|
||||
let segments = idents.into_iter().map(|ident| {
|
||||
ast::PathSegment {
|
||||
identifier: ident,
|
||||
parameters: ast::PathParameters::none(),
|
||||
}
|
||||
}).collect();
|
||||
let path = ast::Path {
|
||||
span: mk_sp(lo, hi),
|
||||
global: true,
|
||||
segments: segments,
|
||||
};
|
||||
|
||||
let range = ExprStruct(path, vec![], None);
|
||||
let ix = self.mk_expr(bracket_pos, hi, range);
|
||||
let index = self.mk_index(e, ix);
|
||||
e = self.mk_expr(lo, hi, index)
|
||||
|
||||
Reference in New Issue
Block a user