Commit graph

5641 commits

Author SHA1 Message Date
Philipp Hansch
4aff8711f0
Fix ICE in vec_box lint and add run-rustfix
`hir::Ty` doesn't seem to know anything about type bounds and
`cx.tcx.type_of(def_id)` caused an ICE when it was passed a generic type
with a bound:

```
src/librustc_typeck/collect.rs:1311: unexpected non-type Node::GenericParam: Type { default: None, synthetic: None }
```

Converting it to a proper `Ty` fixes the ICE and catches a few more
places where the lint applies.
2019-02-01 18:18:45 +01:00
bors
5176a5c4b7 Auto merge of #3726 - phansch:some_renaming, r=oli-obk
Some renamings: s/ast_ty/hir_ty and s/StructField/hir::StructField

I think in both cases the new names make the code more understandable.
For `StructField` specifically because there's one in
[`syntax::ast`][ast] and one in [`rustc::hir`][hir].

[ast]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.StructField.html
[hir]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.StructField.html
2019-02-01 08:36:11 +00:00
Philipp Hansch
4e39e65ad8
Travis: Don't run integration tests on every PR commit
This does not save Clippy any time but it makes sure that the concurrent
build limit is not reached as quickly for the `rust-lang` Travis
account.

I can't create a permalink to the discussion somehow, so here's an
excerpt from the Infra channel:

```
[11:57 PM] pietroalbini: there is a clippy build (20 jobs) and a packed_simd one (42 builders)  and a rustc one which isn't scheduling atm
[11:58 PM] pietroalbini: I don't think there is a way to prioritize rustc builds in the queue on travis, right?
[12:22 AM] alexcrichton: pietro: I don't think so no
[12:22 AM] alexcrichton: If it's a problem we should cull builds on other projects
[12:22 AM] alexcrichton: The rust repo is the #1 priority
```

Since the integration tests are rarely failing these days, I think it's
fine to not run them on every commit.

If needed, it's also still possible to do a `try` build with `@bors try`.
2019-02-01 07:34:36 +01:00
Michael Wright
b6c3a6a09f Move max_value handling to consts module 2019-02-01 06:32:16 +02:00
Michael Wright
488cdebd26 Merge branch 'master' into fix-2728 2019-02-01 06:27:36 +02:00
rhysd
b52a9bd966 cargo +nightly fmt at clippy_lints/ 2019-02-01 12:03:13 +09:00
rhysd
06e4e9cf27 remove TODO comment which was already done 2019-02-01 11:40:02 +09:00
rhysd
9d130a546f add dbg_macro rule to CHANGELOG.md and update count in README 2019-02-01 11:32:22 +09:00
rhysd
7ec5528e0c fix category and use suggestion 2019-02-01 09:31:26 +09:00
bors
84dca9af66 Auto merge of #3727 - phansch:rustup_unused_trim, r=matthiaskrgr
Rustup: unused trim result

Caused by https://github.com/rust-lang/rust/pull/57106

r? @matthiaskrgr
2019-01-31 10:01:13 +00:00
Philipp Hansch
ec261a28f0
Rustup: unused trim result 2019-01-31 08:27:04 +01:00
Philipp Hansch
ee7bad455b
Some renamings: s/ast_ty/hir_ty and s/StructField/hir::StructField
I think in both cases the new names make the code more understandable.
For `StructField` specifically because there's one in
[`syntax::ast`][ast] and one in [`rustc::hir`][hir].

[ast]: https://doc.rust-lang.org/nightly/nightly-rustc/syntax/ast/struct.StructField.html
[hir]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/hir/struct.StructField.html
2019-01-31 07:25:47 +01:00
Michael Wright
3cf8c0b3b5 Fix cast_sign_loss false positive
This checks if the value is a non-negative constant before linting about
losing the sign.

Because the `constant` function doesn't handle const functions, we check if
the value is from a call to a `max_value` function directly. A utility method
called `get_def_path` was added to make checking for the function paths
easier.

Fixes #2728
2019-01-31 06:32:29 +02:00
rhysd
f894adce8c implement dbg_macro rule (fixes #3721) 2019-01-31 02:39:38 +09:00
bors
6ce78d1257 Auto merge of #3652 - Aehmlo:where_the_wild_things_are, r=phansch
Add wildcard_match_arm lint

This lint prevents using a wildcard in a match arm. Implemented as a restriction currently, because this is pretty much an edge case. See #3649 for more information.

Didn't add any tests because I wasn't sure how, but if someone wants to point me in the right direction, I'd be happy to!
2019-01-29 22:48:03 +00:00
Alex Hamilton
7fa50fb3fe wildcard_match_arm: Update lint count. 2019-01-29 15:33:16 -06:00
Alex Hamilton
587492b5d2 wildcard_match_arm: add nesting issue to known. 2019-01-29 15:33:04 -06:00
Alex Hamilton
efaed8e0c0 wildcard_match_arm: lint only enum matches. 2019-01-29 15:33:04 -06:00
Alex Hamilton
c676578097 wildcard_match_arm: update ui test stderr 2019-01-29 15:33:04 -06:00
Alex Hamilton
c7ae44c0e2 wildcard_match_arm: format test. 2019-01-29 15:33:04 -06:00
Alex Hamilton
6bc4416b2b wilcard_match_arm: run rustfmt. 2019-01-29 15:33:04 -06:00
Alex Hamilton
c75dfeb29b wildcard_match_arm: add lint properly. 2019-01-29 15:33:04 -06:00
Alex Hamilton
23eae0909d wildcard_match_arm: rename function.
We also don't need `ex` as an argument.
2019-01-29 15:33:04 -06:00
Alex Hamilton
068924198b wildcard_match_arm: add simple ui test. 2019-01-29 15:33:04 -06:00
Alex Hamilton
20ba476ea8 wildcard_match_arm: expand lint scope.
We're not only working with Results.
2019-01-29 15:33:04 -06:00
Alex Hamilton
1b3c3d073a Change match_wild lint name to WILDCARD_MATCH_ARM.
Also fix message capitalization.
2019-01-29 15:33:04 -06:00
Alex Hamilton
0da18677f7 Add match_wild lint (#3649).
This lint prevents using a wildcard in a match.
2019-01-29 15:33:04 -06:00
bors
6b1a2a9c3e Auto merge of #3648 - phansch:const_fn_lint, r=oli-obk
Add initial version of const_fn lint

This adds an initial version of a lint that can tell if a function could be `const`.

TODO:

- [x] Finish up the docs
- [x] Fix the ICE

cc #2440
2019-01-29 19:58:13 +00:00
bors
f55d521e6b Auto merge of #3716 - matthiaskrgr:sh, r=phansch
fetch_prs_between: add .sh file ending

r? @phansch
2019-01-29 19:06:33 +00:00
Matthias Krüger
246b9e7aed fetch_prs_between: add .sh file ending 2019-01-29 20:00:45 +01:00
Philipp Hansch
d0d7c5e922
cargo fmt 2019-01-29 19:56:19 +01:00
bors
3d646f6a4d Auto merge of #3714 - mikerite:fix-2945, r=oli-obk
Fix `unit_arg` false positive

Ignore arguments with the question mark operator.

Closes #2945
2019-01-29 11:57:26 +00:00
Philipp Hansch
aed001b8d4
Update various docs
* `const_transmute` currently also seems to depend on the `const_fn`
  feature.
* Only `Sized` is currently allowed as a bound, not Copy.
2019-01-29 08:19:05 +01:00
Philipp Hansch
0c6bdda562
Use built-in entry_fn detection over self-built 2019-01-29 08:19:05 +01:00
Philipp Hansch
c0a02691d8
cargo fmt 2019-01-29 08:19:05 +01:00
Philipp Hansch
f9d65b6356
Reorganize conditionals: Run faster checks first 2019-01-29 08:19:05 +01:00
Philipp Hansch
68cc4df551
Maybe fix ICE? 2019-01-29 08:19:05 +01:00
Philipp Hansch
c3980bf0bc
Add initial version of const_fn lint 2019-01-29 08:19:05 +01:00
Michael Wright
df04238d3a Fix unit_arg false positive
Ignore arguments with the question mark operator.

Closes #2945
2019-01-29 07:22:08 +02:00
bors
410d5ba6c3 Auto merge of #3700 - phansch:would_you_like_some_help_with_this_const_fn, r=oli-obk
Prevent incorrect cast_lossless suggestion in const_fn

`::from` is not a const fn, so applying the suggestion of
`cast_lossless` would fail to compile. The fix is to skip the lint if
the cast is found inside a const fn.

Fixes #3656
2019-01-28 14:30:18 +00:00
bors
4a2116b305 Auto merge of #3711 - rust-lang:rustup, r=oli-obk
Rustup

fixes #3709

I'm currently in the process of making rustc's deprecation lint emit the `AtomicFoo::new(0)` suggestion
2019-01-28 11:37:45 +00:00
Oliver Scherer
60332941c9 Rustfmt 2019-01-28 11:32:41 +01:00
Oliver Scherer
c67a05166f Check hypothetically failing conversion 2019-01-28 10:32:34 +01:00
Oliver Scherer
8a417204f8 Remove tests for deprecated items 2019-01-28 10:17:04 +01:00
Oliver Scherer
7b90cb529a Update more changed iterator paths 2019-01-28 10:16:34 +01:00
Oliver Scherer
dc8c7b1677 Atomics constants are now handled by the deprecation lint 2019-01-28 10:10:27 +01:00
Oliver Scherer
36245feeb0 Update changed iterator paths 2019-01-28 10:09:45 +01:00
Oliver Scherer
b08964b3bd Update const slice processing 2019-01-28 10:09:34 +01:00
bors
62f40e28b9 Auto merge of #3706 - robamler:patch-1, r=phansch
Fix documentation for `slow_vector_initialization`

This PR fixes the documentation for the lint `slow_vector_initialization`. The documentation recommended writing `vec![len; 0]` but the correct solution is `vec![0; len]`.
2019-01-27 13:34:47 +00:00
bors
13421e3945 Auto merge of #3705 - matthiaskrgr:rustup, r=phansch
rustup

rustup https://github.com/rust-lang/rust/pull/57907/ and https://github.com/rust-lang/rust/pull/57726
Fixes #3708
2019-01-27 13:14:37 +00:00