@@ -1874,7 +1874,25 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1874
1874
1875
1875
#[ instrument( level = "trace" , skip( self ) ) ]
1876
1876
fn lower_generic_param ( & mut self , param : & GenericParam ) -> hir:: GenericParam < ' hir > {
1877
- let ( name, kind) = match param. kind {
1877
+ let ( name, kind) = self . lower_generic_param_kind ( param) ;
1878
+
1879
+ let hir_id = self . lower_node_id ( param. id ) ;
1880
+ self . lower_attrs ( hir_id, & param. attrs ) ;
1881
+ hir:: GenericParam {
1882
+ hir_id,
1883
+ name,
1884
+ span : self . lower_span ( param. span ( ) ) ,
1885
+ pure_wrt_drop : self . sess . contains_name ( & param. attrs , sym:: may_dangle) ,
1886
+ kind,
1887
+ colon_span : param. colon_span . map ( |s| self . lower_span ( s) ) ,
1888
+ }
1889
+ }
1890
+
1891
+ fn lower_generic_param_kind (
1892
+ & mut self ,
1893
+ param : & GenericParam ,
1894
+ ) -> ( hir:: ParamName , hir:: GenericParamKind < ' hir > ) {
1895
+ match param. kind {
1878
1896
GenericParamKind :: Lifetime => {
1879
1897
// AST resolution emitted an error on those parameters, so we lower them using
1880
1898
// `ParamName::Error`.
@@ -1908,17 +1926,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
1908
1926
hir:: GenericParamKind :: Const { ty, default } ,
1909
1927
)
1910
1928
}
1911
- } ;
1912
-
1913
- let hir_id = self . lower_node_id ( param. id ) ;
1914
- self . lower_attrs ( hir_id, & param. attrs ) ;
1915
- hir:: GenericParam {
1916
- hir_id,
1917
- name,
1918
- span : self . lower_span ( param. span ( ) ) ,
1919
- pure_wrt_drop : self . sess . contains_name ( & param. attrs , sym:: may_dangle) ,
1920
- kind,
1921
- colon_span : param. colon_span . map ( |s| self . lower_span ( s) ) ,
1922
1929
}
1923
1930
}
1924
1931
0 commit comments