@@ -1737,48 +1737,27 @@ pub fn recursive_type_with_infinite_size_error(
1737
1737
for & span in & spans {
1738
1738
err. span_label ( span, "recursive without indirection" ) ;
1739
1739
}
1740
- let short_msg = format ! ( "insert some indirection to make `{}` representable" , path) ;
1741
1740
let msg = format ! (
1742
1741
"insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `{}` representable" ,
1743
1742
path,
1744
1743
) ;
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| {
1750
1750
vec ! [
1751
1751
( span. shrink_to_lo( ) , "Box<" . to_string( ) ) ,
1752
1752
( 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) ;
1782
1761
}
1783
1762
err. emit ( ) ;
1784
1763
}
0 commit comments