@@ -666,17 +666,15 @@ fn convert_trait_item(tcx: TyCtxt<'_>, trait_item_id: hir::TraitItemId) {
666666            tcx. ensure ( ) . fn_sig ( def_id) ; 
667667        } 
668668
669-         hir:: TraitItemKind :: Const ( .. ,   Some ( _ ) )  => { 
669+         hir:: TraitItemKind :: Const ( ty ,  body_id )  => { 
670670            tcx. ensure ( ) . type_of ( def_id) ; 
671-         } 
672- 
673-         hir:: TraitItemKind :: Const ( hir_ty,  _)  => { 
674-             tcx. ensure ( ) . type_of ( def_id) ; 
675-             // Account for `const C: _;`. 
676-             let  mut  visitor = HirPlaceholderCollector :: default ( ) ; 
677-             visitor. visit_trait_item ( trait_item) ; 
678-             if  !tcx. sess . diagnostic ( ) . has_stashed_diagnostic ( hir_ty. span ,  StashKey :: ItemNoType )  { 
679-                 placeholder_type_error ( tcx,  None ,  visitor. 0 ,  false ,  None ,  "constant" ) ; 
671+             if  !tcx. sess . diagnostic ( ) . has_stashed_diagnostic ( ty. span ,  StashKey :: ItemNoType ) 
672+                 && !( is_suggestable_infer_ty ( ty)  && body_id. is_some ( ) ) 
673+             { 
674+                 // Account for `const C: _;`. 
675+                 let  mut  visitor = HirPlaceholderCollector :: default ( ) ; 
676+                 visitor. visit_trait_item ( trait_item) ; 
677+                 placeholder_type_error ( tcx,  None ,  visitor. 0 ,  false ,  None ,  "associated constant" ) ; 
680678            } 
681679        } 
682680
@@ -721,7 +719,14 @@ fn convert_impl_item(tcx: TyCtxt<'_>, impl_item_id: hir::ImplItemId) {
721719
722720            placeholder_type_error ( tcx,  None ,  visitor. 0 ,  false ,  None ,  "associated type" ) ; 
723721        } 
724-         hir:: ImplItemKind :: Const ( ..)  => { } 
722+         hir:: ImplItemKind :: Const ( ty,  _)  => { 
723+             // Account for `const T: _ = ..;` 
724+             if  !is_suggestable_infer_ty ( ty)  { 
725+                 let  mut  visitor = HirPlaceholderCollector :: default ( ) ; 
726+                 visitor. visit_impl_item ( impl_item) ; 
727+                 placeholder_type_error ( tcx,  None ,  visitor. 0 ,  false ,  None ,  "associated constant" ) ; 
728+             } 
729+         } 
725730    } 
726731} 
727732
0 commit comments