mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-12-03 18:09:42 +00:00
string_slice should detect on Cow
This commit is contained in:
parent
5da97d006e
commit
7b7cf440cb
3 changed files with 16 additions and 5 deletions
|
@ -190,7 +190,7 @@ impl<'tcx> LateLintPass<'tcx> for StringAdd {
|
|||
}
|
||||
},
|
||||
ExprKind::Index(target, _idx, _) => {
|
||||
let e_ty = cx.typeck_results().expr_ty(target).peel_refs();
|
||||
let e_ty = cx.typeck_results().expr_ty_adjusted(target).peel_refs();
|
||||
if e_ty.is_str() || is_type_lang_item(cx, e_ty, LangItem::String) {
|
||||
span_lint(
|
||||
cx,
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std::borrow::Cow;
|
||||
|
||||
#[warn(clippy::string_slice)]
|
||||
#[allow(clippy::no_effect)]
|
||||
|
||||
|
@ -11,4 +13,7 @@ fn main() {
|
|||
let s = String::from(m);
|
||||
&s[0..2];
|
||||
//~^ ERROR: indexing into a string may panic if the index is within a UTF-8 character
|
||||
let a = Cow::Borrowed("foo");
|
||||
&a[0..3];
|
||||
//~^ ERROR: indexing into a string may panic if the index is within a UTF-8 character
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: indexing into a string may panic if the index is within a UTF-8 character
|
||||
--> tests/ui/string_slice.rs:5:6
|
||||
--> tests/ui/string_slice.rs:7:6
|
||||
|
|
||||
LL | &"Ölkanne"[1..];
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
@ -8,16 +8,22 @@ LL | &"Ölkanne"[1..];
|
|||
= help: to override `-D warnings` add `#[allow(clippy::string_slice)]`
|
||||
|
||||
error: indexing into a string may panic if the index is within a UTF-8 character
|
||||
--> tests/ui/string_slice.rs:9:6
|
||||
--> tests/ui/string_slice.rs:11:6
|
||||
|
|
||||
LL | &m[2..5];
|
||||
| ^^^^^^^
|
||||
|
||||
error: indexing into a string may panic if the index is within a UTF-8 character
|
||||
--> tests/ui/string_slice.rs:12:6
|
||||
--> tests/ui/string_slice.rs:14:6
|
||||
|
|
||||
LL | &s[0..2];
|
||||
| ^^^^^^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: indexing into a string may panic if the index is within a UTF-8 character
|
||||
--> tests/ui/string_slice.rs:17:6
|
||||
|
|
||||
LL | &a[0..3];
|
||||
| ^^^^^^^
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
|
Loading…
Reference in a new issue