@@ -1759,48 +1759,27 @@ pub fn recursive_type_with_infinite_size_error(
1759
1759
for & span in & spans {
1760
1760
err. span_label ( span, "recursive without indirection" ) ;
1761
1761
}
1762
- let short_msg = format ! ( "insert some indirection to make `{}` representable" , path) ;
1763
1762
let msg = format ! (
1764
1763
"insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `{}` representable" ,
1765
1764
path,
1766
1765
) ;
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| {
1772
1772
vec ! [
1773
1773
( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
1774
1774
( 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) ;
1804
1783
}
1805
1784
err. emit ( ) ;
1806
1785
}
0 commit comments