Skip to content

Commit be65012

Browse files
committed
turn hir::ItemKind::Fn into a named-field variant
1 parent c528b8c commit be65012

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+158
-111
lines changed

compiler/rustc_ast_lowering/src/item.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
233233
header: this.lower_fn_header(*header, hir::Safety::Safe),
234234
span: this.lower_span(*fn_sig_span),
235235
};
236-
hir::ItemKind::Fn(sig, generics, body_id)
236+
hir::ItemKind::Fn { sig, generics, body: body_id }
237237
})
238238
}
239239
ItemKind::Mod(_, mod_kind) => match mod_kind {
@@ -435,11 +435,11 @@ impl<'hir> LoweringContext<'_, 'hir> {
435435
}
436436
ItemKind::Delegation(box delegation) => {
437437
let delegation_results = self.lower_delegation(delegation, id);
438-
hir::ItemKind::Fn(
439-
delegation_results.sig,
440-
delegation_results.generics,
441-
delegation_results.body_id,
442-
)
438+
hir::ItemKind::Fn {
439+
sig: delegation_results.sig,
440+
generics: delegation_results.generics,
441+
body: delegation_results.body_id,
442+
}
443443
}
444444
ItemKind::MacCall(..) | ItemKind::DelegationMac(..) => {
445445
panic!("macros should have been expanded by now")

compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -981,7 +981,9 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
981981

982982
let arg = match hir.get_if_local(callee_def_id) {
983983
Some(
984-
hir::Node::Item(hir::Item { ident, kind: hir::ItemKind::Fn(sig, ..), .. })
984+
hir::Node::Item(hir::Item {
985+
ident, kind: hir::ItemKind::Fn { sig, .. }, ..
986+
})
985987
| hir::Node::TraitItem(hir::TraitItem {
986988
ident,
987989
kind: hir::TraitItemKind::Fn(sig, _),
@@ -1020,7 +1022,9 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
10201022
// ...otherwise we are probably in the tail expression of the function, point at the
10211023
// return type.
10221024
match self.infcx.tcx.hir_node_by_def_id(hir.get_parent_item(fn_call_id).def_id) {
1023-
hir::Node::Item(hir::Item { ident, kind: hir::ItemKind::Fn(sig, ..), .. })
1025+
hir::Node::Item(hir::Item {
1026+
ident, kind: hir::ItemKind::Fn { sig, .. }, ..
1027+
})
10241028
| hir::Node::TraitItem(hir::TraitItem {
10251029
ident,
10261030
kind: hir::TraitItemKind::Fn(sig, _),

compiler/rustc_hir/src/hir.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -3640,7 +3640,7 @@ impl<'hir> Item<'hir> {
36403640
ItemKind::Const(ty, generics, body), (ty, generics, *body);
36413641

36423642
expect_fn, (&FnSig<'hir>, &'hir Generics<'hir>, BodyId),
3643-
ItemKind::Fn(sig, generics, body), (sig, generics, *body);
3643+
ItemKind::Fn { sig, generics, body }, (sig, generics, *body);
36443644

36453645
expect_macro, (&ast::MacroDef, MacroKind), ItemKind::Macro(def, mk), (def, *mk);
36463646

@@ -3768,7 +3768,7 @@ pub enum ItemKind<'hir> {
37683768
/// A `const` item.
37693769
Const(&'hir Ty<'hir>, &'hir Generics<'hir>, BodyId),
37703770
/// A function declaration.
3771-
Fn(FnSig<'hir>, &'hir Generics<'hir>, BodyId),
3771+
Fn { sig: FnSig<'hir>, generics: &'hir Generics<'hir>, body: BodyId },
37723772
/// A MBE macro definition (`macro_rules!` or `macro`).
37733773
Macro(&'hir ast::MacroDef, MacroKind),
37743774
/// A module.
@@ -3819,7 +3819,7 @@ pub struct Impl<'hir> {
38193819
impl ItemKind<'_> {
38203820
pub fn generics(&self) -> Option<&Generics<'_>> {
38213821
Some(match *self {
3822-
ItemKind::Fn(_, ref generics, _)
3822+
ItemKind::Fn { ref generics, .. }
38233823
| ItemKind::TyAlias(_, ref generics)
38243824
| ItemKind::Const(_, ref generics, _)
38253825
| ItemKind::Enum(_, ref generics)
@@ -3838,7 +3838,7 @@ impl ItemKind<'_> {
38383838
ItemKind::Use(..) => "`use` import",
38393839
ItemKind::Static(..) => "static item",
38403840
ItemKind::Const(..) => "constant item",
3841-
ItemKind::Fn(..) => "function",
3841+
ItemKind::Fn { .. } => "function",
38423842
ItemKind::Macro(..) => "macro",
38433843
ItemKind::Mod(..) => "module",
38443844
ItemKind::ForeignMod { .. } => "extern block",
@@ -4004,7 +4004,7 @@ impl<'hir> OwnerNode<'hir> {
40044004
match self {
40054005
OwnerNode::TraitItem(TraitItem { kind: TraitItemKind::Fn(fn_sig, _), .. })
40064006
| OwnerNode::ImplItem(ImplItem { kind: ImplItemKind::Fn(fn_sig, _), .. })
4007-
| OwnerNode::Item(Item { kind: ItemKind::Fn(fn_sig, _, _), .. })
4007+
| OwnerNode::Item(Item { kind: ItemKind::Fn { sig: fn_sig, .. }, .. })
40084008
| OwnerNode::ForeignItem(ForeignItem {
40094009
kind: ForeignItemKind::Fn(fn_sig, _, _), ..
40104010
}) => Some(fn_sig),
@@ -4016,7 +4016,7 @@ impl<'hir> OwnerNode<'hir> {
40164016
match self {
40174017
OwnerNode::TraitItem(TraitItem { kind: TraitItemKind::Fn(fn_sig, _), .. })
40184018
| OwnerNode::ImplItem(ImplItem { kind: ImplItemKind::Fn(fn_sig, _), .. })
4019-
| OwnerNode::Item(Item { kind: ItemKind::Fn(fn_sig, _, _), .. })
4019+
| OwnerNode::Item(Item { kind: ItemKind::Fn { sig: fn_sig, .. }, .. })
40204020
| OwnerNode::ForeignItem(ForeignItem {
40214021
kind: ForeignItemKind::Fn(fn_sig, _, _), ..
40224022
}) => Some(fn_sig.decl),
@@ -4030,7 +4030,7 @@ impl<'hir> OwnerNode<'hir> {
40304030
kind:
40314031
ItemKind::Static(_, _, body)
40324032
| ItemKind::Const(_, _, body)
4033-
| ItemKind::Fn(_, _, body),
4033+
| ItemKind::Fn { body, .. },
40344034
..
40354035
})
40364036
| OwnerNode::TraitItem(TraitItem {
@@ -4206,7 +4206,7 @@ impl<'hir> Node<'hir> {
42064206
match self {
42074207
Node::TraitItem(TraitItem { kind: TraitItemKind::Fn(fn_sig, _), .. })
42084208
| Node::ImplItem(ImplItem { kind: ImplItemKind::Fn(fn_sig, _), .. })
4209-
| Node::Item(Item { kind: ItemKind::Fn(fn_sig, _, _), .. })
4209+
| Node::Item(Item { kind: ItemKind::Fn { sig: fn_sig, .. }, .. })
42104210
| Node::ForeignItem(ForeignItem { kind: ForeignItemKind::Fn(fn_sig, _, _), .. }) => {
42114211
Some(fn_sig.decl)
42124212
}
@@ -4236,7 +4236,7 @@ impl<'hir> Node<'hir> {
42364236
match self {
42374237
Node::TraitItem(TraitItem { kind: TraitItemKind::Fn(fn_sig, _), .. })
42384238
| Node::ImplItem(ImplItem { kind: ImplItemKind::Fn(fn_sig, _), .. })
4239-
| Node::Item(Item { kind: ItemKind::Fn(fn_sig, _, _), .. })
4239+
| Node::Item(Item { kind: ItemKind::Fn { sig: fn_sig, .. }, .. })
42404240
| Node::ForeignItem(ForeignItem { kind: ForeignItemKind::Fn(fn_sig, _, _), .. }) => {
42414241
Some(fn_sig)
42424242
}
@@ -4281,7 +4281,7 @@ impl<'hir> Node<'hir> {
42814281
Node::Item(Item {
42824282
owner_id,
42834283
kind:
4284-
ItemKind::Const(_, _, body) | ItemKind::Static(.., body) | ItemKind::Fn(.., body),
4284+
ItemKind::Const(_, _, body) | ItemKind::Static(.., body) | ItemKind::Fn { body, .. },
42854285
..
42864286
})
42874287
| Node::TraitItem(TraitItem {
@@ -4338,7 +4338,7 @@ impl<'hir> Node<'hir> {
43384338
pub fn fn_kind(self) -> Option<FnKind<'hir>> {
43394339
match self {
43404340
Node::Item(i) => match i.kind {
4341-
ItemKind::Fn(ref sig, ref generics, _) => {
4341+
ItemKind::Fn { sig, generics, .. } => {
43424342
Some(FnKind::ItemFn(i.ident, generics, sig.header))
43434343
}
43444344
_ => None,

compiler/rustc_hir/src/intravisit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item<'v>) -> V::
509509
try_visit!(visitor.visit_generics(generics));
510510
try_visit!(visitor.visit_nested_body(body));
511511
}
512-
ItemKind::Fn(ref sig, ref generics, body_id) => {
512+
ItemKind::Fn { sig, generics, body: body_id, .. } => {
513513
try_visit!(visitor.visit_id(item.hir_id()));
514514
try_visit!(visitor.visit_fn(
515515
FnKind::ItemFn(item.ident, generics, sig.header),

compiler/rustc_hir/src/target.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ impl Target {
106106
ItemKind::Use(..) => Target::Use,
107107
ItemKind::Static { .. } => Target::Static,
108108
ItemKind::Const(..) => Target::Const,
109-
ItemKind::Fn(..) => Target::Fn,
109+
ItemKind::Fn { .. } => Target::Fn,
110110
ItemKind::Macro(..) => Target::MacroDef,
111111
ItemKind::Mod(..) => Target::Mod,
112112
ItemKind::ForeignMod { .. } => Target::ForeignMod,

compiler/rustc_hir_analysis/src/check/entry.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ fn check_main_fn_ty(tcx: TyCtxt<'_>, main_def_id: DefId) {
4444
return None;
4545
}
4646
match tcx.hir_node_by_def_id(def_id.expect_local()) {
47-
Node::Item(hir::Item { kind: hir::ItemKind::Fn(_, generics, _), .. }) => {
47+
Node::Item(hir::Item { kind: hir::ItemKind::Fn { generics, .. }, .. }) => {
4848
generics.params.is_empty().not().then_some(generics.span)
4949
}
5050
_ => {
@@ -58,7 +58,7 @@ fn check_main_fn_ty(tcx: TyCtxt<'_>, main_def_id: DefId) {
5858
return None;
5959
}
6060
match tcx.hir_node_by_def_id(def_id.expect_local()) {
61-
Node::Item(hir::Item { kind: hir::ItemKind::Fn(_, generics, _), .. }) => {
61+
Node::Item(hir::Item { kind: hir::ItemKind::Fn { generics, .. }, .. }) => {
6262
Some(generics.where_clause_span)
6363
}
6464
_ => {
@@ -79,7 +79,7 @@ fn check_main_fn_ty(tcx: TyCtxt<'_>, main_def_id: DefId) {
7979
return None;
8080
}
8181
match tcx.hir_node_by_def_id(def_id.expect_local()) {
82-
Node::Item(hir::Item { kind: hir::ItemKind::Fn(fn_sig, _, _), .. }) => {
82+
Node::Item(hir::Item { kind: hir::ItemKind::Fn { sig: fn_sig, .. }, .. }) => {
8383
Some(fn_sig.decl.output.span())
8484
}
8585
_ => {
@@ -201,7 +201,7 @@ fn check_start_fn_ty(tcx: TyCtxt<'_>, start_def_id: DefId) {
201201
match start_t.kind() {
202202
ty::FnDef(..) => {
203203
if let Node::Item(it) = tcx.hir_node(start_id) {
204-
if let hir::ItemKind::Fn(sig, generics, _) = &it.kind {
204+
if let hir::ItemKind::Fn { sig, generics, .. } = &it.kind {
205205
let mut error = false;
206206
if !generics.params.is_empty() {
207207
tcx.dcx().emit_err(errors::StartFunctionParameters { span: generics.span });

compiler/rustc_hir_analysis/src/check/intrinsic.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ fn equate_intrinsic_type<'tcx>(
2626
sig: ty::PolyFnSig<'tcx>,
2727
) {
2828
let (generics, span) = match tcx.hir_node_by_def_id(def_id) {
29-
hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn(_, generics, _), .. })
29+
hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn { generics, .. }, .. })
3030
| hir::Node::ForeignItem(hir::ForeignItem {
3131
kind: hir::ForeignItemKind::Fn(_, _, generics),
3232
..

compiler/rustc_hir_analysis/src/check/wfcheck.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ fn check_item<'tcx>(tcx: TyCtxt<'tcx>, item: &'tcx hir::Item<'tcx>) -> Result<()
293293
}
294294
res
295295
}
296-
hir::ItemKind::Fn(ref sig, ..) => {
296+
hir::ItemKind::Fn { sig, .. } => {
297297
check_item_fn(tcx, def_id, item.ident, item.span, sig.decl)
298298
}
299299
hir::ItemKind::Static(ty, ..) => {

compiler/rustc_hir_analysis/src/collect.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ fn lower_item(tcx: TyCtxt<'_>, item_id: hir::ItemId) {
788788
}
789789
}
790790

791-
hir::ItemKind::Fn(..) => {
791+
hir::ItemKind::Fn { .. } => {
792792
tcx.ensure().generics_of(def_id);
793793
tcx.ensure().type_of(def_id);
794794
tcx.ensure().predicates_of(def_id);
@@ -1297,7 +1297,7 @@ fn fn_sig(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::EarlyBinder<'_, ty::PolyFn
12971297
generics,
12981298
..
12991299
})
1300-
| Item(hir::Item { kind: ItemKind::Fn(sig, generics, _), .. }) => {
1300+
| Item(hir::Item { kind: ItemKind::Fn { sig, generics, .. }, .. }) => {
13011301
lower_fn_sig_recovering_infer_ret_ty(&icx, sig, generics, def_id)
13021302
}
13031303

compiler/rustc_hir_analysis/src/collect/predicates_of.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ pub(super) fn const_conditions<'tcx>(
969969
{
970970
Node::Item(item) => match item.kind {
971971
hir::ItemKind::Impl(impl_) => (impl_.generics, None, false),
972-
hir::ItemKind::Fn(_, generics, _) => (generics, None, false),
972+
hir::ItemKind::Fn { generics, .. } => (generics, None, false),
973973
hir::ItemKind::Trait(_, _, generics, supertraits, _) => {
974974
(generics, Some((item.owner_id.def_id, supertraits)), false)
975975
}

compiler/rustc_hir_analysis/src/collect/resolve_bound_vars.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ impl<'a, 'tcx> Visitor<'tcx> for BoundVarContext<'a, 'tcx> {
660660
_ => {}
661661
}
662662
match item.kind {
663-
hir::ItemKind::Fn(_, generics, _) => {
663+
hir::ItemKind::Fn { generics, .. } => {
664664
self.visit_early_late(item.hir_id(), generics, |this| {
665665
intravisit::walk_item(this, item);
666666
});
@@ -1379,7 +1379,7 @@ impl<'a, 'tcx> BoundVarContext<'a, 'tcx> {
13791379
} else if let Some(body_id) = outermost_body {
13801380
let fn_id = self.tcx.hir().body_owner(body_id);
13811381
match self.tcx.hir_node(fn_id) {
1382-
Node::Item(hir::Item { owner_id, kind: hir::ItemKind::Fn(..), .. })
1382+
Node::Item(hir::Item { owner_id, kind: hir::ItemKind::Fn { .. }, .. })
13831383
| Node::TraitItem(hir::TraitItem {
13841384
owner_id,
13851385
kind: hir::TraitItemKind::Fn(..),

compiler/rustc_hir_analysis/src/collect/type_of.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ pub(super) fn type_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::EarlyBinder<'_
293293
}
294294
_ => icx.lower_ty(*self_ty),
295295
},
296-
ItemKind::Fn(..) => {
296+
ItemKind::Fn { .. } => {
297297
let args = ty::GenericArgs::identity_for_item(tcx, def_id);
298298
Ty::new_fn_def(tcx, def_id.to_def_id(), args)
299299
}

compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,9 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
189189
// 2. Functions inside trait blocks
190190
// 3. Functions inside impl blocks
191191
let (sig, generics) = match tcx.hir_node_by_def_id(parent_id) {
192-
hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn(sig, generics, _), .. }) => {
193-
(sig, generics)
194-
}
192+
hir::Node::Item(hir::Item {
193+
kind: hir::ItemKind::Fn { sig, generics, .. }, ..
194+
}) => (sig, generics),
195195
hir::Node::TraitItem(hir::TraitItem {
196196
kind: hir::TraitItemKind::Fn(sig, _),
197197
generics,

compiler/rustc_hir_pretty/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ impl<'a> State<'a> {
634634
self.word(";");
635635
self.end(); // end the outer cbox
636636
}
637-
hir::ItemKind::Fn(ref sig, generics, body) => {
637+
hir::ItemKind::Fn { sig, generics, body, .. } => {
638638
self.head("");
639639
self.print_fn(
640640
sig.decl,

compiler/rustc_hir_typeck/src/_match.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
391391
if let hir::Node::Block(block) = node {
392392
// check that the body's parent is an fn
393393
let parent = self.tcx.parent_hir_node(self.tcx.parent_hir_id(block.hir_id));
394-
if let (Some(expr), hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn(..), .. })) =
394+
if let (Some(expr), hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn { .. }, .. })) =
395395
(&block.expr, parent)
396396
{
397397
// check that the `if` expr without `else` is the fn body's expr

compiler/rustc_hir_typeck/src/callee.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
705705
for id in self.tcx.hir().items() {
706706
if let Some(node) = self.tcx.hir().get_if_local(id.owner_id.into())
707707
&& let hir::Node::Item(item) = node
708-
&& let hir::ItemKind::Fn(..) = item.kind
708+
&& let hir::ItemKind::Fn { .. } = item.kind
709709
&& item.ident.name == segment.ident.name
710710
{
711711
err.span_label(

compiler/rustc_hir_typeck/src/expr.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -1127,7 +1127,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
11271127
let encl_item_id = self.tcx.hir().get_parent_item(expr.hir_id);
11281128

11291129
if let hir::Node::Item(hir::Item {
1130-
kind: hir::ItemKind::Fn(..), span: encl_fn_span, ..
1130+
kind: hir::ItemKind::Fn { .. },
1131+
span: encl_fn_span,
1132+
..
11311133
})
11321134
| hir::Node::TraitItem(hir::TraitItem {
11331135
kind: hir::TraitItemKind::Fn(_, hir::TraitFn::Provided(_)),

compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
891891
self.tcx.hir().get_fn_id_for_return_block(blk_id).and_then(|item_id| {
892892
match self.tcx.hir_node(item_id) {
893893
Node::Item(&hir::Item {
894-
kind: hir::ItemKind::Fn(ref sig, ..), owner_id, ..
894+
kind: hir::ItemKind::Fn { sig, .. }, owner_id, ..
895895
}) => Some((owner_id.def_id, sig.decl)),
896896
Node::TraitItem(&hir::TraitItem {
897897
kind: hir::TraitItemKind::Fn(ref sig, ..),
@@ -920,7 +920,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
920920
)) => {
921921
let (sig, owner_id) = match self.tcx.parent_hir_node(hir_id) {
922922
Node::Item(&hir::Item {
923-
kind: hir::ItemKind::Fn(ref sig, ..),
923+
kind: hir::ItemKind::Fn { ref sig, .. },
924924
owner_id,
925925
..
926926
}) => (sig, owner_id),

compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2041,7 +2041,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
20412041
fn parent_item_span(&self, id: HirId) -> Option<Span> {
20422042
let node = self.tcx.hir_node_by_def_id(self.tcx.hir().get_parent_item(id).def_id);
20432043
match node {
2044-
Node::Item(&hir::Item { kind: hir::ItemKind::Fn(_, _, body_id), .. })
2044+
Node::Item(&hir::Item { kind: hir::ItemKind::Fn { body: body_id, .. }, .. })
20452045
| Node::ImplItem(&hir::ImplItem { kind: hir::ImplItemKind::Fn(_, body_id), .. }) => {
20462046
let body = self.tcx.hir().body(body_id);
20472047
if let ExprKind::Block(block, _) = &body.value.kind {
@@ -2189,7 +2189,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
21892189
}
21902190
}
21912191
hir::Node::Item(item) => {
2192-
if let hir::ItemKind::Fn(..) = item.kind {
2192+
if let hir::ItemKind::Fn { .. } = item.kind {
21932193
break;
21942194
}
21952195
}

compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -981,14 +981,15 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
981981

982982
let hir::Node::Item(hir::Item {
983983
kind:
984-
hir::ItemKind::Fn(
985-
hir::FnSig {
986-
decl: hir::FnDecl { inputs: fn_parameters, output: fn_return, .. },
987-
..
988-
},
989-
hir::Generics { params, predicates, .. },
990-
_body_id,
991-
),
984+
hir::ItemKind::Fn {
985+
sig:
986+
hir::FnSig {
987+
decl: hir::FnDecl { inputs: fn_parameters, output: fn_return, .. },
988+
..
989+
},
990+
generics: hir::Generics { params, predicates, .. },
991+
..
992+
},
992993
..
993994
}) = fn_node
994995
else {

compiler/rustc_hir_typeck/src/upvar.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1935,7 +1935,7 @@ fn drop_location_span(tcx: TyCtxt<'_>, hir_id: HirId) -> Span {
19351935
let owner_node = tcx.hir_node(owner_id);
19361936
let owner_span = match owner_node {
19371937
hir::Node::Item(item) => match item.kind {
1938-
hir::ItemKind::Fn(_, _, owner_id) => tcx.hir().span(owner_id.hir_id),
1938+
hir::ItemKind::Fn { body: owner_id, .. } => tcx.hir().span(owner_id.hir_id),
19391939
_ => {
19401940
bug!("Drop location span error: need to handle more ItemKind '{:?}'", item.kind);
19411941
}

0 commit comments

Comments
 (0)