@@ -1737,48 +1737,27 @@ pub fn recursive_type_with_infinite_size_error(
17371737 for & span in & spans {
17381738 err. span_label ( span, "recursive without indirection" ) ;
17391739 }
1740- let short_msg = format ! ( "insert some indirection to make `{}` representable" , path) ;
17411740 let msg = format ! (
17421741 "insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `{}` representable" ,
17431742 path,
17441743 ) ;
1745- match & spans[ ..] {
1746- [ span] => {
1747- err. multipart_suggestions (
1748- & short_msg,
1749- vec ! [
1744+ if spans. len ( ) <= 4 {
1745+ err. multipart_suggestion (
1746+ & msg,
1747+ spans
1748+ . iter ( )
1749+ . flat_map ( |& span| {
17501750 vec ! [
17511751 ( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
17521752 ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1753- ] ,
1754- vec![
1755- ( span. shrink_to_lo( ) , "Rc<" . to_string( ) ) ,
1756- ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1757- ] ,
1758- vec![ ( span. shrink_to_lo( ) , "&" . to_string( ) ) ] ,
1759- ] ,
1760- Applicability :: HasPlaceholders ,
1761- ) ;
1762- }
1763- _ if spans. len ( ) <= 4 => {
1764- err. multipart_suggestion (
1765- & msg,
1766- spans
1767- . iter ( )
1768- . flat_map ( |& span| {
1769- vec ! [
1770- ( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
1771- ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1772- ]
1773- . into_iter ( )
1774- } )
1775- . collect ( ) ,
1776- Applicability :: HasPlaceholders ,
1777- ) ;
1778- }
1779- _ => {
1780- err. help ( & msg) ;
1781- }
1753+ ]
1754+ . into_iter ( )
1755+ } )
1756+ . collect ( ) ,
1757+ Applicability :: HasPlaceholders ,
1758+ ) ;
1759+ } else {
1760+ err. help ( & msg) ;
17821761 }
17831762 err. emit ( ) ;
17841763}
0 commit comments