diff options
| author | Edward Wang <edward.yu.wang@gmail.com> | 2014-02-22 04:04:03 +0800 |
|---|---|---|
| committer | Edward Wang <edward.yu.wang@gmail.com> | 2014-02-22 04:05:33 +0800 |
| commit | 760733280521739bad5bd826235839498fdb8367 (patch) | |
| tree | 4699e672ca25b4b06ece30bae8fc87899f0013dd /src/libsyntax | |
| parent | 2fa7d6b44fcc329e849f4dd43e11c6fdd43ebd76 (diff) | |
| download | rust-760733280521739bad5bd826235839498fdb8367.tar.gz rust-760733280521739bad5bd826235839498fdb8367.zip | |
Represent lifetimes as Names instead of Idents
Closes #7743.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/deriving/ty.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/ext/format.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 |
6 files changed, 11 insertions, 12 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index e8edc1a0dfc..8f3f1787a58 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -144,8 +144,7 @@ pub type FnIdent = Option<Ident>; pub struct Lifetime { id: NodeId, span: Span, - // FIXME #7743 : change this to Name! - ident: Ident + ident: Name } // a "Path" is essentially Rust's notion of a name; diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index d311a542ac6..2265e42af4d 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -73,7 +73,7 @@ pub trait AstBuilder { fn trait_ref(&self, path: ast::Path) -> ast::TraitRef; fn typarambound(&self, path: ast::Path) -> ast::TyParamBound; - fn lifetime(&self, span: Span, ident: ast::Ident) -> ast::Lifetime; + fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime; // statements fn stmt_expr(&self, expr: @ast::Expr) -> @ast::Stmt; @@ -408,7 +408,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { ast::TraitTyParamBound(self.trait_ref(path)) } - fn lifetime(&self, span: Span, ident: ast::Ident) -> ast::Lifetime { + fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime { ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, ident: ident } } diff --git a/src/libsyntax/ext/deriving/ty.rs b/src/libsyntax/ext/deriving/ty.rs index ff0fd388ebe..1d3dd9185ca 100644 --- a/src/libsyntax/ext/deriving/ty.rs +++ b/src/libsyntax/ext/deriving/ty.rs @@ -111,14 +111,14 @@ pub fn nil_ty() -> Ty<'static> { fn mk_lifetime(cx: &ExtCtxt, span: Span, lt: &Option<&str>) -> Option<ast::Lifetime> { match *lt { - Some(ref s) => Some(cx.lifetime(span, cx.ident_of(*s))), + Some(ref s) => Some(cx.lifetime(span, cx.ident_of(*s).name)), None => None } } fn mk_lifetimes(cx: &ExtCtxt, span: Span, lt: &Option<&str>) -> OptVec<ast::Lifetime> { match *lt { - Some(ref s) => opt_vec::with(cx.lifetime(span, cx.ident_of(*s))), + Some(ref s) => opt_vec::with(cx.lifetime(span, cx.ident_of(*s).name)), None => opt_vec::Empty } } @@ -221,7 +221,7 @@ impl<'a> LifetimeBounds<'a> { self_generics: &Generics) -> Generics { let lifetimes = self.lifetimes.map(|lt| { - cx.lifetime(span, cx.ident_of(*lt)) + cx.lifetime(span, cx.ident_of(*lt).name) }); let ty_params = self.bounds.map(|t| { match t { @@ -248,7 +248,7 @@ pub fn get_explicit_self(cx: &ExtCtxt, span: Span, self_ptr: &Option<PtrTy>) match *ptr { Send => ast::SelfUniq, Borrowed(ref lt, mutbl) => { - let lt = lt.map(|s| cx.lifetime(span, cx.ident_of(s))); + let lt = lt.map(|s| cx.lifetime(span, cx.ident_of(s).name)); ast::SelfRegion(lt, mutbl) } }); diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index d7a2647c34d..16a12661e9d 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -497,7 +497,7 @@ impl<'a> Context<'a> { ]) } }; - let life = self.ecx.lifetime(sp, self.ecx.ident_of("static")); + let life = self.ecx.lifetime(sp, self.ecx.ident_of("static").name); let ty = self.ecx.ty_path(self.ecx.path_all( sp, true, @@ -629,7 +629,7 @@ impl<'a> Context<'a> { self.ecx.ident_of("Piece"), ], opt_vec::with( - self.ecx.lifetime(self.fmtsp, self.ecx.ident_of("static"))), + self.ecx.lifetime(self.fmtsp, self.ecx.ident_of("static").name)), ~[] ), None); let ty = ast::TyFixedLengthVec( diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 6cde22fad10..30e77c8c1cb 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1596,7 +1596,7 @@ impl Parser { return ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, - ident: i + ident: i.name }; } _ => { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 21e1998208c..fb061bbc0a6 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1951,7 +1951,7 @@ pub fn print_bounds(s: &mut State, bounds: &OptVec<ast::TyParamBound>, pub fn print_lifetime(s: &mut State, lifetime: &ast::Lifetime) -> io::IoResult<()> { try!(word(&mut s.s, "'")); - print_ident(s, lifetime.ident) + print_name(s, lifetime.ident) } pub fn print_generics(s: &mut State, |
