diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2022-05-20 17:32:48 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2022-06-07 18:29:07 -0300 |
| commit | 1e6ed67d373f2bbf3c78e9fef8f9b6eed1edeb14 (patch) | |
| tree | d559c912f34ba5749c8d47a15e49da157d155afb | |
| parent | a22aad32eb5999fbf77ad3ca1797db7bd1eaaf2d (diff) | |
| download | rust-1e6ed67d373f2bbf3c78e9fef8f9b6eed1edeb14.tar.gz rust-1e6ed67d373f2bbf3c78e9fef8f9b6eed1edeb14.zip | |
Extract lower_generic_param_kind
| -rw-r--r-- | compiler/rustc_ast_lowering/src/lib.rs | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs index a8a115fe38f..387eca51b57 100644 --- a/compiler/rustc_ast_lowering/src/lib.rs +++ b/compiler/rustc_ast_lowering/src/lib.rs @@ -1874,7 +1874,25 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { #[instrument(level = "trace", skip(self))] fn lower_generic_param(&mut self, param: &GenericParam) -> hir::GenericParam<'hir> { - let (name, kind) = match param.kind { + let (name, kind) = self.lower_generic_param_kind(param); + + let hir_id = self.lower_node_id(param.id); + self.lower_attrs(hir_id, ¶m.attrs); + hir::GenericParam { + hir_id, + name, + span: self.lower_span(param.span()), + pure_wrt_drop: self.sess.contains_name(¶m.attrs, sym::may_dangle), + kind, + colon_span: param.colon_span.map(|s| self.lower_span(s)), + } + } + + fn lower_generic_param_kind( + &mut self, + param: &GenericParam, + ) -> (hir::ParamName, hir::GenericParamKind<'hir>) { + match param.kind { GenericParamKind::Lifetime => { // AST resolution emitted an error on those parameters, so we lower them using // `ParamName::Error`. @@ -1908,17 +1926,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { hir::GenericParamKind::Const { ty, default }, ) } - }; - - let hir_id = self.lower_node_id(param.id); - self.lower_attrs(hir_id, ¶m.attrs); - hir::GenericParam { - hir_id, - name, - span: self.lower_span(param.span()), - pure_wrt_drop: self.sess.contains_name(¶m.attrs, sym::may_dangle), - kind, - colon_span: param.colon_span.map(|s| self.lower_span(s)), } } |
