diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-03-18 16:47:09 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-04-06 11:48:19 +0300 |
| commit | e2afefd80bf779bc3c6f697a3c6cc3a476993602 (patch) | |
| tree | c419ff9b09e7065348264eff44e4c45d05060c4e /src/libsyntax_ext | |
| parent | 8719d1ed05761b344d611ae0893b1d994b6ebe6f (diff) | |
| download | rust-e2afefd80bf779bc3c6f697a3c6cc3a476993602.tar.gz rust-e2afefd80bf779bc3c6f697a3c6cc3a476993602.zip | |
Get rid of `SpannedIdent`
Diffstat (limited to 'src/libsyntax_ext')
| -rw-r--r-- | src/libsyntax_ext/concat_idents.rs | 33 | ||||
| -rw-r--r-- | src/libsyntax_ext/deriving/generic/mod.rs | 10 |
2 files changed, 13 insertions, 30 deletions
diff --git a/src/libsyntax_ext/concat_idents.rs b/src/libsyntax_ext/concat_idents.rs index 2b80d698764..1df7706966d 100644 --- a/src/libsyntax_ext/concat_idents.rs +++ b/src/libsyntax_ext/concat_idents.rs @@ -9,7 +9,6 @@ // except according to those terms. use syntax::ast; -use syntax::codemap::DUMMY_SP; use syntax::ext::base::*; use syntax::ext::base; use syntax::feature_gate; @@ -53,28 +52,17 @@ pub fn expand_syntax_ext<'cx>(cx: &'cx mut ExtCtxt, } } } - let res = ast::Ident::new(Symbol::intern(&res_str), - DUMMY_SP.apply_mark(cx.current_expansion.mark)); - struct Result { - ident: ast::Ident, - span: Span, - }; - impl Result { - fn path(&self) -> ast::Path { - ast::Path { - span: self.span, - segments: vec![ast::PathSegment::from_ident(self.ident, self.span)], - } - } - } + let ident = ast::Ident::new(Symbol::intern(&res_str), sp.apply_mark(cx.current_expansion.mark)); + + struct ConcatIdentsResult { ident: ast::Ident } - impl base::MacResult for Result { + impl base::MacResult for ConcatIdentsResult { fn make_expr(self: Box<Self>) -> Option<P<ast::Expr>> { Some(P(ast::Expr { id: ast::DUMMY_NODE_ID, - node: ast::ExprKind::Path(None, self.path()), - span: self.span, + node: ast::ExprKind::Path(None, ast::Path::from_ident(self.ident.span, self.ident)), + span: self.ident.span, attrs: ast::ThinVec::new(), })) } @@ -82,14 +70,11 @@ pub fn expand_syntax_ext<'cx>(cx: &'cx mut ExtCtxt, fn make_ty(self: Box<Self>) -> Option<P<ast::Ty>> { Some(P(ast::Ty { id: ast::DUMMY_NODE_ID, - node: ast::TyKind::Path(None, self.path()), - span: self.span, + node: ast::TyKind::Path(None, ast::Path::from_ident(self.ident.span, self.ident)), + span: self.ident.span, })) } } - Box::new(Result { - ident: res, - span: sp.with_ctxt(sp.ctxt().apply_mark(cx.current_expansion.mark)), - }) + Box::new(ConcatIdentsResult { ident }) } diff --git a/src/libsyntax_ext/deriving/generic/mod.rs b/src/libsyntax_ext/deriving/generic/mod.rs index c51f44cdece..ab285c4d395 100644 --- a/src/libsyntax_ext/deriving/generic/mod.rs +++ b/src/libsyntax_ext/deriving/generic/mod.rs @@ -195,6 +195,7 @@ use syntax::abi::Abi; use syntax::ast::{ self, BinOpKind, EnumDef, Expr, GenericParam, Generics, Ident, PatKind, VariantData }; + use syntax::attr; use syntax::ext::base::{Annotatable, ExtCtxt}; use syntax::ext::build::AstBuilder; @@ -952,7 +953,7 @@ impl<'a> MethodDef<'a> { let args = { let self_args = explicit_self.map(|explicit_self| { ast::Arg::from_self(explicit_self, - respan(trait_.span, keywords::SelfValue.ident())) + keywords::SelfValue.ident().with_span_pos(trait_.span)) }); let nonself_args = arg_types.into_iter() .map(|(name, ty)| cx.arg(trait_.span, name, ty)); @@ -1581,7 +1582,7 @@ impl<'a> TraitDef<'a> { fn create_subpatterns(&self, cx: &mut ExtCtxt, - field_paths: Vec<ast::SpannedIdent>, + field_paths: Vec<ast::Ident>, mutbl: ast::Mutability, use_temporaries: bool) -> Vec<P<ast::Pat>> { @@ -1613,10 +1614,7 @@ impl<'a> TraitDef<'a> { for (i, struct_field) in struct_def.fields().iter().enumerate() { let sp = struct_field.span.with_ctxt(self.span.ctxt()); let ident = cx.ident_of(&format!("{}_{}", prefix, i)); - paths.push(codemap::Spanned { - span: sp, - node: ident, - }); + paths.push(ident.with_span_pos(sp)); let val = cx.expr_path(cx.path_ident(sp, ident)); let val = if use_temporaries { val |
