diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-19 12:15:55 +0100 |
---|---|---|
committer | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-19 12:15:55 +0100 |
commit | f209843e31af7f0e0212aa28ffec2efad2a70c6f (patch) | |
tree | 548227da78a3bea644f57714d075410c0bdf7469 /crates/ra_hir/src/generics.rs | |
parent | 58d4983ba5745975446d60f2886d96f8d2adf0f2 (diff) | |
parent | d4a66166c002f0a49e41d856a49cb5685ac93202 (diff) |
Merge #1545
1545: migrate ra_syntax to the new rowan API r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/generics.rs')
-rw-r--r-- | crates/ra_hir/src/generics.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs index 07a59193f..bcbb4988d 100644 --- a/crates/ra_hir/src/generics.rs +++ b/crates/ra_hir/src/generics.rs | |||
@@ -76,17 +76,17 @@ impl GenericParams { | |||
76 | generics.parent_params = parent.map(|p| db.generic_params(p)); | 76 | generics.parent_params = parent.map(|p| db.generic_params(p)); |
77 | let start = generics.parent_params.as_ref().map(|p| p.params.len()).unwrap_or(0) as u32; | 77 | let start = generics.parent_params.as_ref().map(|p| p.params.len()).unwrap_or(0) as u32; |
78 | match def { | 78 | match def { |
79 | GenericDef::Function(it) => generics.fill(&*it.source(db).ast, start), | 79 | GenericDef::Function(it) => generics.fill(&it.source(db).ast, start), |
80 | GenericDef::Struct(it) => generics.fill(&*it.source(db).ast, start), | 80 | GenericDef::Struct(it) => generics.fill(&it.source(db).ast, start), |
81 | GenericDef::Union(it) => generics.fill(&*it.source(db).ast, start), | 81 | GenericDef::Union(it) => generics.fill(&it.source(db).ast, start), |
82 | GenericDef::Enum(it) => generics.fill(&*it.source(db).ast, start), | 82 | GenericDef::Enum(it) => generics.fill(&it.source(db).ast, start), |
83 | GenericDef::Trait(it) => { | 83 | GenericDef::Trait(it) => { |
84 | // traits get the Self type as an implicit first type parameter | 84 | // traits get the Self type as an implicit first type parameter |
85 | generics.params.push(GenericParam { idx: start, name: SELF_TYPE, default: None }); | 85 | generics.params.push(GenericParam { idx: start, name: SELF_TYPE, default: None }); |
86 | generics.fill(&*it.source(db).ast, start + 1); | 86 | generics.fill(&it.source(db).ast, start + 1); |
87 | } | 87 | } |
88 | GenericDef::TypeAlias(it) => generics.fill(&*it.source(db).ast, start), | 88 | GenericDef::TypeAlias(it) => generics.fill(&it.source(db).ast, start), |
89 | GenericDef::ImplBlock(it) => generics.fill(&*it.source(db).ast, start), | 89 | GenericDef::ImplBlock(it) => generics.fill(&it.source(db).ast, start), |
90 | GenericDef::EnumVariant(_) => {} | 90 | GenericDef::EnumVariant(_) => {} |
91 | } | 91 | } |
92 | 92 | ||
@@ -102,9 +102,9 @@ impl GenericParams { | |||
102 | } | 102 | } |
103 | } | 103 | } |
104 | 104 | ||
105 | fn fill_params(&mut self, params: &ast::TypeParamList, start: u32) { | 105 | fn fill_params(&mut self, params: ast::TypeParamList, start: u32) { |
106 | for (idx, type_param) in params.type_params().enumerate() { | 106 | for (idx, type_param) in params.type_params().enumerate() { |
107 | let name = type_param.name().map(AsName::as_name).unwrap_or_else(Name::missing); | 107 | let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); |
108 | let default = type_param.default_type().and_then(|t| t.path()).and_then(Path::from_ast); | 108 | let default = type_param.default_type().and_then(|t| t.path()).and_then(Path::from_ast); |
109 | 109 | ||
110 | let param = GenericParam { idx: idx as u32 + start, name: name.clone(), default }; | 110 | let param = GenericParam { idx: idx as u32 + start, name: name.clone(), default }; |
@@ -121,7 +121,7 @@ impl GenericParams { | |||
121 | } | 121 | } |
122 | } | 122 | } |
123 | 123 | ||
124 | fn fill_where_predicates(&mut self, where_clause: &ast::WhereClause) { | 124 | fn fill_where_predicates(&mut self, where_clause: ast::WhereClause) { |
125 | for pred in where_clause.predicates() { | 125 | for pred in where_clause.predicates() { |
126 | let type_ref = match pred.type_ref() { | 126 | let type_ref = match pred.type_ref() { |
127 | Some(type_ref) => type_ref, | 127 | Some(type_ref) => type_ref, |
@@ -134,7 +134,7 @@ impl GenericParams { | |||
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | fn add_where_predicate_from_bound(&mut self, bound: &ast::TypeBound, type_ref: TypeRef) { | 137 | fn add_where_predicate_from_bound(&mut self, bound: ast::TypeBound, type_ref: TypeRef) { |
138 | let path = bound | 138 | let path = bound |
139 | .type_ref() | 139 | .type_ref() |
140 | .and_then(|tr| match tr.kind() { | 140 | .and_then(|tr| match tr.kind() { |