Skip to content

Commit fdbd0c4

Browse files
committed
Refactorings: code cleanup
1 parent ed1eeb6 commit fdbd0c4

1 file changed

Lines changed: 27 additions & 36 deletions

File tree

compiler/rustc_ast_lowering/src/delegation/generics.rs

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -74,29 +74,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
7474
})
7575
}
7676

77-
fn lower_ast_generics(
78-
&mut self,
79-
item_id: NodeId,
80-
span: Span,
81-
generics: &DelegationGenerics<Generics>,
82-
) -> DelegationGenerics<&'hir hir::Generics<'hir>> {
83-
let mut process_params = |generics: &Option<Generics>| {
84-
generics
85-
.as_ref()
86-
.map(|g| self.lower_delegation_generic_params(item_id, span, g.params.clone()))
87-
};
88-
89-
match generics {
90-
DelegationGenerics::UserSpecified => DelegationGenerics::UserSpecified,
91-
DelegationGenerics::Default(generics) => {
92-
DelegationGenerics::Default(process_params(generics))
93-
}
94-
DelegationGenerics::SelfAndUserSpecified(generics) => {
95-
DelegationGenerics::SelfAndUserSpecified(process_params(generics))
96-
}
97-
}
98-
}
99-
10077
fn lower_delegation_generic_params(
10178
&mut self,
10279
item_id: NodeId,
@@ -378,9 +355,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
378355
};
379356

380357
if add_self {
381-
generics = Some(generics.unwrap_or(Generics::default()));
382-
383-
generics.as_mut().unwrap().params.insert(
358+
generics.get_or_insert_default().params.insert(
384359
0,
385360
GenericParam {
386361
id: self.next_node_id(),
@@ -411,23 +386,39 @@ impl<'hir> HirOrAstGenerics<'hir> {
411386
span: Span,
412387
) -> &mut Self {
413388
match self {
414-
HirOrAstGenerics::Ast(delegation_generics) => {
415-
*self = Self::Hir(ctx.lower_ast_generics(item_id, span, delegation_generics));
389+
HirOrAstGenerics::Ast(generics) => {
390+
let mut process_params = |generics: &Option<Generics>| {
391+
generics.as_ref().map(|g| {
392+
ctx.lower_delegation_generic_params(item_id, span, g.params.clone())
393+
})
394+
};
395+
396+
let hir_generics = match generics {
397+
DelegationGenerics::UserSpecified => DelegationGenerics::UserSpecified,
398+
DelegationGenerics::Default(generics) => {
399+
DelegationGenerics::Default(process_params(generics))
400+
}
401+
DelegationGenerics::SelfAndUserSpecified(generics) => {
402+
DelegationGenerics::SelfAndUserSpecified(process_params(generics))
403+
}
404+
};
405+
406+
*self = Self::Hir(hir_generics);
416407
}
417-
HirOrAstGenerics::Hir(_) => {}
408+
Self::Hir(_) => {}
418409
}
419410

420411
self
421412
}
422413

423414
fn hir_generics_or_empty(&self) -> &'hir hir::Generics<'hir> {
424415
match self {
425-
HirOrAstGenerics::Ast(_) => hir::Generics::empty(),
426-
HirOrAstGenerics::Hir(hir_generics) => match hir_generics {
416+
Self::Ast(_) => hir::Generics::empty(),
417+
Self::Hir(hir_generics) => match hir_generics {
427418
DelegationGenerics::UserSpecified => hir::Generics::empty(),
428419
DelegationGenerics::Default(generics)
429420
| DelegationGenerics::SelfAndUserSpecified(generics) => {
430-
generics.as_ref().unwrap_or(&hir::Generics::empty())
421+
generics.unwrap_or(hir::Generics::empty())
431422
}
432423
},
433424
}
@@ -440,8 +431,8 @@ impl<'hir> HirOrAstGenerics<'hir> {
440431
span: Span,
441432
) -> Option<&'hir hir::GenericArgs<'hir>> {
442433
match self {
443-
HirOrAstGenerics::Ast(_) => None,
444-
HirOrAstGenerics::Hir(hir_generics) => match hir_generics {
434+
Self::Ast(_) => None,
435+
Self::Hir(hir_generics) => match hir_generics {
445436
DelegationGenerics::UserSpecified => None,
446437
DelegationGenerics::Default(generics)
447438
| DelegationGenerics::SelfAndUserSpecified(generics) => generics.map(|generics| {
@@ -453,8 +444,8 @@ impl<'hir> HirOrAstGenerics<'hir> {
453444

454445
pub(super) fn is_user_specified(&self) -> bool {
455446
match self {
456-
HirOrAstGenerics::Ast(ast_generics) => ast_generics.is_user_specified(),
457-
HirOrAstGenerics::Hir(hir_generics) => hir_generics.is_user_specified(),
447+
Self::Ast(ast_generics) => ast_generics.is_user_specified(),
448+
Self::Hir(hir_generics) => hir_generics.is_user_specified(),
458449
}
459450
}
460451
}

0 commit comments

Comments
 (0)