Commit Graph

437 Commits

Author SHA1 Message Date
llogiq
c645a9febe adding missing doc comments 2015-12-14 22:16:56 +01:00
llogiq
827082ac41 fix boxed_local example 2015-12-14 21:17:11 +01:00
Manish Goregaokar
8105260d6e Merge pull request #501 from oli-obk/fix/seme
fix cyclomatic complexity lint (fixes #491, fixes #478)
2015-12-14 22:23:42 +05:30
Oliver Schneider
cc1d696cb9 fix fallout from CC improvements 2015-12-14 14:30:09 +01:00
Oliver Schneider
902c7d832b fix cc computation in the presence of diverging calls
CFG treats diverging calls as its completely own path out of the function.
While this makes sense, it should also mean that a panic should increase the cyclomatic
complexity. Instead it decreases it.

Minimal example:

```rust
if a {
    b
} else {
    panic!("cake");
}
d
```

creates the following graph

```dot
digraph G {
  "if a" -> "b"
  "if a" -> "panic!(\"cake\")"
  "b" -> c
}
```

which has a CC of 1 (3 - 4 + 2). A CC of 1 means there is one path through the program.
Obviously that is wrong. There are two paths. One returning normally, and one panicking.
2015-12-14 14:29:20 +01:00
llogiq
c0bccc9567 more doc comments 2015-12-14 13:32:07 +01:00
llogiq
d7292fe235 more docs 2015-12-14 08:03:01 +01:00
Manish Goregaokar
f2b977907c Merge branch 'more_wiki' 2015-12-13 21:58:18 +05:30
Manish Goregaokar
4ae43b10f0 Add wiki note for escape analysis 2015-12-13 09:08:58 +05:30
Cesar Eduardo Barros
8e59be318c Mention VecDeque in linkedlist lint
I couldn't find anything named RingBuf in the standard library. Some
search revealed that it had been renamed to VecDeque before the first
stable Rust release.
2015-12-12 20:05:06 -02:00
Manish Goregaokar
6aa656a910 Merge pull request #492 from Manishearth/wiki
added wiki comments + wiki-generating python script
2015-12-11 09:20:19 -05:00
llogiq
5bbc1427fd added wiki comments + wiki-generating python script 2015-12-11 01:22:27 +01:00
Manish Goregaokar
b9546599e3 Check for unused lifetimes in bounds (fixes #489) 2015-12-10 12:02:59 -05:00
Manish Goregaokar
b865e30b49 Upgrade rust to rustc 1.6.0-nightly (462ec0576 2015-12-09) 2015-12-09 15:56:49 -05:00
Seo Sanghyeon
213c15cd66 Add span_lint_and_then and use it 2015-12-09 02:46:14 +09:00
Seo Sanghyeon
35b5c3efdd Use suggestion for redundant_closure 2015-12-08 15:03:01 +09:00
llogiq
3260b501a2 Merge pull request #483 from Manishearth/bored
Add lint for unused lifetimes (fixes #459)
2015-12-07 21:47:10 +01:00
Manish Goregaokar
e8686a3ecd Merge branch 'pr-482' 2015-12-07 07:23:52 -05:00
Guillaume Gomez
72117836f1 Add check on redundant _ bindings in structs 2015-12-07 13:16:59 +01:00
Manish Goregaokar
c7b87a06d2 Add lint for unused lifetimes (fixes #459) 2015-12-07 06:55:14 -05:00
Manish Goregaokar
c4e9982dd7 Merge pull request #481 from fhartwig/lifetime-with-alias
Make unneeded_lifetimes lint work properly with type aliases
2015-12-06 09:08:40 +05:30
Florian Hartwig
ac39dc290b Remove obsolete workaround 2015-12-06 02:05:32 +01:00
Florian Hartwig
62db392730 Make lifetimes lint work with type aliases and non-locally-defined structs 2015-12-06 02:04:13 +01:00
Robert Clipsham
978c41584f Fix clippy with latest Rust nightly. 2015-12-05 12:33:58 +00:00
Manish Goregaokar
dc414e6c02 Make panic in CC silencable (partial #478) 2015-12-05 14:23:00 +05:30
Manish Goregaokar
18e81c1b59 Rudimentary escape analysis for Box<T> 2015-12-04 20:23:14 +05:30
llogiq
e90acaf596 Merge pull request #460 from oli-obk/cyclomatic_complexity
Cyclomatic complexity
2015-12-03 16:52:53 +01:00
Oliver Schneider
04524c549e improve cc of function 2015-12-03 16:41:55 +01:00
Oliver Schneider
3d1b7e1957 high-speed-dogfood 2015-12-03 16:41:55 +01:00
Oliver Schneider
617c820e6b compute cyclomatic complexity (adjusted to not punish Rust's match) 2015-12-03 16:41:55 +01:00
Seo Sanghyeon
26f539eaa3 Remove unused qualifications 2015-12-02 23:25:12 +09:00
Manish Goregaokar
ba59ed05e3 Rust upgrade to rustc 1.6.0-nightly (52d95e644 2015-11-30) 2015-11-30 23:16:28 +05:30
Hobofan
7d583dab80 fix for latest nightly
Fixes breakage introduced by rust-lang/rust#30043
2015-11-27 14:50:23 +01:00
Manish Goregaokar
409c0f0998 Merge pull request #468 from devonhollowood/option-methods
Lint `map(f).unwrap_or(a)` and `map(f).unwrap_or_else(g)`
2015-11-26 14:22:27 +05:30
Devon Hollowood
443e4556c2 Add lints suggesting map_or() and map_or_else()
In accordance with the latter lint, replace map().unwrap_or_else() in
src/mut_mut.rs with map_or_else()
2015-11-25 23:56:45 -08:00
Florian Hartwig
94dc2f567a Suppress explicit_counter_loop lint if loop variable is used after the loop 2015-11-26 00:09:01 +01:00
Florian Hartwig
cf54006449 Fixes to build with current rust nightly 2015-11-25 16:28:29 +01:00
Seo Sanghyeon
b1a0abe404 Don't panic 2015-11-25 13:57:50 +09:00
Seo Sanghyeon
746991572f Extend match_ref_pats to desugared matches 2015-11-25 02:47:17 +09:00
Seo Sanghyeon
a3e8091e87 Dogfood match_ref_pats for if let 2015-11-25 02:44:40 +09:00
Manish Goregaokar
b40e80f039 spurious newline 2015-11-23 16:34:23 +05:30
Manish Goregaokar
84ad2be1df Merge branch 'pr-462'
Conflicts:
	README.md
2015-11-22 21:58:13 +05:30
John Quigley
d4cf288b38 Add block_in_if lint, #434 2015-11-22 21:52:06 +05:30
Florian Hartwig
a36707bffd Appease clippy by not shadowing variables 2015-11-19 20:19:19 +01:00
Florian Hartwig
096c064d43 Simplify has_debug_impl 2015-11-19 20:13:36 +01:00
Florian Hartwig
cad88a9137 warn on use of ok().expect() 2015-11-19 17:15:21 +01:00
Florian Hartwig
9511e6739d Update to latest rust nightly 2015-11-19 15:51:30 +01:00
Seo Sanghyeon
1d602d0f12 rustfmt a little 2015-11-17 14:22:57 +09:00
Seo Sanghyeon
b17e38782e Remove trailing commas in match arms with blocks 2015-11-17 13:39:42 +09:00
llogiq
1555eed5fb Merge pull request #452 from fhartwig/lifetime-false-positives
Fix some false positive in needless_lifetimes lint
2015-11-14 09:25:19 +01:00