@@ -888,8 +888,8 @@ fn should_encode_mir(tcx: TyCtxt<'_>, def_id: LocalDefId) -> (bool, bool) {
888888 | DefKind :: AssocConst
889889 | DefKind :: Static ( ..)
890890 | DefKind :: Const => ( true , false ) ,
891- // Full-fledged functions
892- DefKind :: AssocFn | DefKind :: Fn => {
891+ // Full-fledged functions + closures
892+ DefKind :: AssocFn | DefKind :: Fn | DefKind :: Closure => {
893893 let generics = tcx. generics_of ( def_id) ;
894894 let needs_inline = ( generics. requires_monomorphization ( tcx)
895895 || tcx. codegen_fn_attrs ( def_id) . requests_inline ( ) )
@@ -900,15 +900,6 @@ fn should_encode_mir(tcx: TyCtxt<'_>, def_id: LocalDefId) -> (bool, bool) {
900900 let always_encode_mir = tcx. sess . opts . unstable_opts . always_encode_mir ;
901901 ( is_const_fn, needs_inline || always_encode_mir)
902902 }
903- // Closures can't be const fn.
904- DefKind :: Closure => {
905- let generics = tcx. generics_of ( def_id) ;
906- let needs_inline = ( generics. requires_monomorphization ( tcx)
907- || tcx. codegen_fn_attrs ( def_id) . requests_inline ( ) )
908- && tcx. sess . opts . output_types . should_codegen ( ) ;
909- let always_encode_mir = tcx. sess . opts . unstable_opts . always_encode_mir ;
910- ( false , needs_inline || always_encode_mir)
911- }
912903 // Generators require optimized MIR to compute layout.
913904 DefKind :: Generator => ( false , true ) ,
914905 // The others don't have MIR.
0 commit comments