diff options
| author | Jared Roesch <roeschinc@gmail.com> | 2014-12-20 02:29:19 -0800 |
|---|---|---|
| committer | Jared Roesch <roeschinc@gmail.com> | 2014-12-20 02:48:17 -0800 |
| commit | e0cac488ac6ca16507da390429565b7879f76bb4 (patch) | |
| tree | 04e303a6337ac139698b9eecee0e2f52418d04d2 /src/libsyntax/ext | |
| parent | 8f51ad2420776925c12be67a7bf38ac28343fd1f (diff) | |
| download | rust-e0cac488ac6ca16507da390429565b7879f76bb4.tar.gz rust-e0cac488ac6ca16507da390429565b7879f76bb4.zip | |
Add parser support for generalized where clauses
Implement support in the parser for generalized where clauses, as well as the conversion of ast::WherePredicates to ty::Predicate in `collect.rs`.
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/deriving/generic/mod.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index b31758e2d2a..c40ccaa31a5 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -426,12 +426,18 @@ impl<'a> TraitDef<'a> { match *clause { ast::WherePredicate::BoundPredicate(ref wb) => { ast::WherePredicate::BoundPredicate(ast::WhereBoundPredicate { - id: ast::DUMMY_NODE_ID, span: self.span, - ident: wb.ident, + bounded_ty: wb.bounded_ty.clone(), bounds: OwnedSlice::from_vec(wb.bounds.iter().map(|b| b.clone()).collect()) }) } + ast::WherePredicate::RegionPredicate(ref rb) => { + ast::WherePredicate::RegionPredicate(ast::WhereRegionPredicate { + span: self.span, + lifetime: rb.lifetime, + bound: rb.bound + }) + } ast::WherePredicate::EqPredicate(ref we) => { ast::WherePredicate::EqPredicate(ast::WhereEqPredicate { id: ast::DUMMY_NODE_ID, |
