diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2015-02-05 21:46:01 +1300 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2015-02-09 09:29:53 +1300 |
| commit | 8122ce81d0909bed39c6df3e47bc751851bded84 (patch) | |
| tree | 438c010af390cb3d7b67bbfe422e0772c80ca006 /src/libsyntax/ext | |
| parent | 012e9643e4d6f6fa449ca4f4e5e3fc9fb8e536db (diff) | |
| download | rust-8122ce81d0909bed39c6df3e47bc751851bded84.tar.gz rust-8122ce81d0909bed39c6df3e47bc751851bded84.zip | |
Accept quantification of lifetimes outside the self type in where clauses.
Closes #20022
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 9 | ||||
| -rw-r--r-- | src/libsyntax/ext/deriving/generic/mod.rs | 1 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index a7d1baf08be..6d9a2fdb9f1 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -70,7 +70,7 @@ pub trait AstBuilder { default: Option<P<ast::Ty>>) -> ast::TyParam; fn trait_ref(&self, path: ast::Path) -> ast::TraitRef; - fn poly_trait_ref(&self, path: ast::Path) -> ast::PolyTraitRef; + fn poly_trait_ref(&self, span: Span, path: ast::Path) -> ast::PolyTraitRef; fn typarambound(&self, path: ast::Path) -> ast::TyParamBound; fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime; fn lifetime_def(&self, @@ -442,15 +442,16 @@ impl<'a> AstBuilder for ExtCtxt<'a> { } } - fn poly_trait_ref(&self, path: ast::Path) -> ast::PolyTraitRef { + fn poly_trait_ref(&self, span: Span, path: ast::Path) -> ast::PolyTraitRef { ast::PolyTraitRef { bound_lifetimes: Vec::new(), - trait_ref: self.trait_ref(path) + trait_ref: self.trait_ref(path), + span: span, } } fn typarambound(&self, path: ast::Path) -> ast::TyParamBound { - ast::TraitTyParamBound(self.poly_trait_ref(path), ast::TraitBoundModifier::None) + ast::TraitTyParamBound(self.poly_trait_ref(path.span, path), ast::TraitBoundModifier::None) } fn lifetime(&self, span: Span, name: ast::Name) -> ast::Lifetime { diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 28573ef757b..d9242417e04 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -443,6 +443,7 @@ impl<'a> TraitDef<'a> { ast::WherePredicate::BoundPredicate(ref wb) => { ast::WherePredicate::BoundPredicate(ast::WhereBoundPredicate { span: self.span, + bound_lifetimes: wb.bound_lifetimes.clone(), bounded_ty: wb.bounded_ty.clone(), bounds: OwnedSlice::from_vec(wb.bounds.iter().map(|b| b.clone()).collect()) }) |
