diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-08-05 22:59:24 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-08-07 07:23:59 -0400 |
| commit | fcab98038c3b466d9ecd00b0f27e9c748e7acbde (patch) | |
| tree | 345deba110cec778935c4d2fa1b7f9150c90f7c3 /src/libsyntax/ext/build.rs | |
| parent | 1a53c001170f8084ce850498d5e8f22b5e7da72c (diff) | |
| download | rust-fcab98038c3b466d9ecd00b0f27e9c748e7acbde.tar.gz rust-fcab98038c3b466d9ecd00b0f27e9c748e7acbde.zip | |
Temporary bootstrapping hack: introduce syntax for r egion bounds like `'b:'a`,
meaning `'b outlives 'a`. Syntax currently does nothing but is needed for full fix to #5763. To use this syntax, the issue_5763_bootstrap feature guard is required.
Diffstat (limited to 'src/libsyntax/ext/build.rs')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index d500600e25d..0e687c02c1d 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -73,6 +73,11 @@ 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::Name) -> ast::Lifetime; + fn lifetime_def(&self, + span: Span, + name: ast::Name, + bounds: Vec<ast::Lifetime>) + -> ast::LifetimeDef; // statements fn stmt_expr(&self, expr: Gc<ast::Expr>) -> Gc<ast::Stmt>; @@ -456,6 +461,17 @@ impl<'a> AstBuilder for ExtCtxt<'a> { ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, name: name } } + fn lifetime_def(&self, + span: Span, + name: ast::Name, + bounds: Vec<ast::Lifetime>) + -> ast::LifetimeDef { + ast::LifetimeDef { + lifetime: self.lifetime(span, name), + bounds: bounds + } + } + fn stmt_expr(&self, expr: Gc<ast::Expr>) -> Gc<ast::Stmt> { box(GC) respan(expr.span, ast::StmtSemi(expr, ast::DUMMY_NODE_ID)) } |
