@@ -1759,48 +1759,27 @@ pub fn recursive_type_with_infinite_size_error(
17591759 for & span in & spans {
17601760 err. span_label ( span, "recursive without indirection" ) ;
17611761 }
1762- let short_msg = format ! ( "insert some indirection to make `{}` representable" , path) ;
17631762 let msg = format ! (
17641763 "insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `{}` representable" ,
17651764 path,
17661765 ) ;
1767- match & spans[ ..] {
1768- [ span] => {
1769- err. multipart_suggestions (
1770- & short_msg,
1771- vec ! [
1766+ if spans. len ( ) <= 4 {
1767+ err. multipart_suggestion (
1768+ & msg,
1769+ spans
1770+ . iter ( )
1771+ . flat_map ( |& span| {
17721772 vec ! [
17731773 ( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
17741774 ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1775- ] ,
1776- vec![
1777- ( span. shrink_to_lo( ) , "Rc<" . to_string( ) ) ,
1778- ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1779- ] ,
1780- vec![ ( span. shrink_to_lo( ) , "&" . to_string( ) ) ] ,
1781- ] ,
1782- Applicability :: HasPlaceholders ,
1783- ) ;
1784- }
1785- _ if spans. len ( ) <= 4 => {
1786- err. multipart_suggestion (
1787- & msg,
1788- spans
1789- . iter ( )
1790- . flat_map ( |& span| {
1791- vec ! [
1792- ( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
1793- ( span. shrink_to_hi( ) , ">" . to_string( ) ) ,
1794- ]
1795- . into_iter ( )
1796- } )
1797- . collect ( ) ,
1798- Applicability :: HasPlaceholders ,
1799- ) ;
1800- }
1801- _ => {
1802- err. help ( & msg) ;
1803- }
1775+ ]
1776+ . into_iter ( )
1777+ } )
1778+ . collect ( ) ,
1779+ Applicability :: HasPlaceholders ,
1780+ ) ;
1781+ } else {
1782+ err. help ( & msg) ;
18041783 }
18051784 err. emit ( ) ;
18061785}
0 commit comments