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
|
||||
// Good
|
||||
fn main() {
|
||||
let s: &str = ...;
|
||||
if let Some(contents) = string_literal_contents(s) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fn string_literal_contents(s: &str) -> Option<&str> {
|
||||
if s.starts_with('"') && s.ends_with('"') {
|
||||
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
|
||||
fn is_string_literal(s: &str) -> bool {
|
||||
s.starts_with('"') && s.ends_with('"')
|
||||
}
|
||||
|
||||
fn foo() {
|
||||
fn main() {
|
||||
let s: &str = ...;
|
||||
if is_string_literal(s) {
|
||||
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`.
|
||||
|
|
Loading…
Reference in a new issue