mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
minor
This commit is contained in:
parent
6976494781
commit
1688e481b3
1 changed files with 12 additions and 12 deletions
|
@ -113,6 +113,13 @@ Avoid preconditions that span across function boundaries:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
// Good
|
// Good
|
||||||
|
fn main() {
|
||||||
|
let s: &str = ...;
|
||||||
|
if let Some(contents) = string_literal_contents(s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn string_literal_contents(s: &str) -> Option<&str> {
|
fn string_literal_contents(s: &str) -> Option<&str> {
|
||||||
if s.starts_with('"') && s.ends_with('"') {
|
if s.starts_with('"') && s.ends_with('"') {
|
||||||
Some(&s[1..s.len() - 1])
|
Some(&s[1..s.len() - 1])
|
||||||
|
@ -121,24 +128,17 @@ fn string_literal_contents(s: &str) -> Option<&str> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn foo() {
|
|
||||||
let s: &str = ...;
|
|
||||||
if let Some(contents) = string_literal_contents(s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Not as good
|
// Not as good
|
||||||
fn is_string_literal(s: &str) -> bool {
|
fn main() {
|
||||||
s.starts_with('"') && s.ends_with('"')
|
|
||||||
}
|
|
||||||
|
|
||||||
fn foo() {
|
|
||||||
let s: &str = ...;
|
let s: &str = ...;
|
||||||
if is_string_literal(s) {
|
if is_string_literal(s) {
|
||||||
let contents = &s[1..s.len() - 1];
|
let contents = &s[1..s.len() - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_string_literal(s: &str) -> bool {
|
||||||
|
s.starts_with('"') && s.ends_with('"')
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
In the "Not as good" version, the precondition that `1` is a valid char boundary is checked in `is_string_literal` and used in `foo`.
|
In the "Not as good" version, the precondition that `1` is a valid char boundary is checked in `is_string_literal` and used in `foo`.
|
||||||
|
|
Loading…
Reference in a new issue