File tree 3 files changed +27
-3
lines changed
3 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -45,16 +45,16 @@ pub(super) fn check_manual_split_once(
45
45
IterUsageKind :: Next | IterUsageKind :: Second => {
46
46
let self_deref = {
47
47
let adjust = cx. typeck_results ( ) . expr_adjustments ( self_arg) ;
48
- if adjust. is_empty ( ) {
48
+ if adjust. len ( ) < 2 {
49
49
String :: new ( )
50
50
} else if cx. typeck_results ( ) . expr_ty ( self_arg) . is_box ( )
51
51
|| adjust
52
52
. iter ( )
53
53
. any ( |a| matches ! ( a. kind, Adjust :: Deref ( Some ( _) ) ) || a. target . is_box ( ) )
54
54
{
55
- format ! ( "&{}" , "*" . repeat( adjust. len( ) - 1 ) )
55
+ format ! ( "&{}" , "*" . repeat( adjust. len( ) . saturating_sub ( 1 ) ) )
56
56
} else {
57
- "*" . repeat ( adjust. len ( ) - 2 )
57
+ "*" . repeat ( adjust. len ( ) . saturating_sub ( 2 ) )
58
58
}
59
59
} ;
60
60
if matches ! ( usage. kind, IterUsageKind :: Next ) {
Original file line number Diff line number Diff line change
1
+ fn _f ( s : & str ) -> Option < ( ) > {
2
+ let _ = s[ 1 ..] . splitn ( 2 , '.' ) . next ( ) ?;
3
+ Some ( ( ) )
4
+ }
5
+
6
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error: manual implementation of `split_once`
2
+ --> $DIR/ice-8250.rs:2:13
3
+ |
4
+ LL | let _ = s[1..].splitn(2, '.').next()?;
5
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `s[1..].split_once('.').map_or(s[1..], |x| x.0)`
6
+ |
7
+ = note: `-D clippy::manual-split-once` implied by `-D warnings`
8
+
9
+ error: unnecessary use of `splitn`
10
+ --> $DIR/ice-8250.rs:2:13
11
+ |
12
+ LL | let _ = s[1..].splitn(2, '.').next()?;
13
+ | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `s[1..].split('.')`
14
+ |
15
+ = note: `-D clippy::needless-splitn` implied by `-D warnings`
16
+
17
+ error: aborting due to 2 previous errors
18
+
You can’t perform that action at this time.
0 commit comments