diff options
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 4c1ae532d13..3d65dd82643 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -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) |
