diff options
| author | Seo Sanghyeon <sanxiyn@gmail.com> | 2014-12-15 22:31:38 +0900 |
|---|---|---|
| committer | Seo Sanghyeon <sanxiyn@gmail.com> | 2014-12-15 22:31:38 +0900 |
| commit | 4df66cd014409042f1ddbc2f2130c81e4bdc941f (patch) | |
| tree | 6ab568e677491a3f1d515ef3c341ab640305e33e /src/libsyntax/visit.rs | |
| parent | 126db549b038c84269a1e4fe46f051b2c15d6970 (diff) | |
| download | rust-4df66cd014409042f1ddbc2f2130c81e4bdc941f.tar.gz rust-4df66cd014409042f1ddbc2f2130c81e4bdc941f.zip | |
Resolve lifetimes in associated types
Diffstat (limited to 'src/libsyntax/visit.rs')
| -rw-r--r-- | src/libsyntax/visit.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 3535c6e267e..cf3efeeeb8f 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -555,14 +555,18 @@ pub fn walk_ty_param_bound<'v, V: Visitor<'v>>(visitor: &mut V, } } +pub fn walk_ty_param<'v, V: Visitor<'v>>(visitor: &mut V, param: &'v TyParam) { + visitor.visit_ident(param.span, param.ident); + walk_ty_param_bounds_helper(visitor, ¶m.bounds); + match param.default { + Some(ref ty) => visitor.visit_ty(&**ty), + None => {} + } +} + pub fn walk_generics<'v, V: Visitor<'v>>(visitor: &mut V, generics: &'v Generics) { for type_parameter in generics.ty_params.iter() { - visitor.visit_ident(type_parameter.span, type_parameter.ident); - walk_ty_param_bounds_helper(visitor, &type_parameter.bounds); - match type_parameter.default { - Some(ref ty) => visitor.visit_ty(&**ty), - None => {} - } + walk_ty_param(visitor, type_parameter); } walk_lifetime_decls_helper(visitor, &generics.lifetimes); for predicate in generics.where_clause.predicates.iter() { @@ -665,8 +669,7 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_method: &'v Tr RequiredMethod(ref method_type) => visitor.visit_ty_method(method_type), ProvidedMethod(ref method) => walk_method_helper(visitor, &**method), TypeTraitItem(ref associated_type) => { - visitor.visit_ident(associated_type.ty_param.span, - associated_type.ty_param.ident) + walk_ty_param(visitor, &associated_type.ty_param); } } } |
