David Tolnay
247b58b4f4
Allow unused extern crate again
...
This is a partial revert of #42588 . There is a usability concern
reported in #44294 that was not considered in the discussion of the PR,
so I would like to back this out of 1.21. As is, I think users would
have a worse and more confusing experience with this lint enabled by
default. We can re-enabled once there are better diagnostics or the case
in #44294 does not trigger the lint.
2017-09-24 23:57:45 -07:00
Alex Crichton
058202e523
rustc: Remove the used_unsafe
field on TyCtxt
...
Now that lint levels are available for the entire compilation, this can be an
entirely local lint in `effect.rs`
2017-08-30 16:09:02 -07:00
Tatsuyuki Ishi
bc5bd51c45
Make unused-extern-crate warn-by-default
2017-08-27 19:02:24 +09:00
Vadim Petrochenkov
39114f9169
Make late_bound_lifetime_arguments
lint warn-by-default
2017-07-18 00:33:44 +03:00
Vadim Petrochenkov
7ca378b251
Prohibit lifetime arguments in path segments with late bound lifetime parameters
2017-07-18 00:12:48 +03:00
Vadim Petrochenkov
9196f874e4
Make patterns_in_fns_without_body
warn-by-default again
...
Fix some tests on Linux
2017-07-08 03:01:11 +03:00
Vadim Petrochenkov
bdffb9722d
Move public reexports of private extern crates into a separate lint
...
This is going to be a hard error while all private-in-public errors from rustc_privacy will be reclassified into lints.
2017-07-08 01:56:27 +03:00
Vadim Petrochenkov
96bcdac9e4
Make sufficiently old or low-impact compatibility lints deny-by-default
2017-07-08 01:56:27 +03:00
Vadim Petrochenkov
26d5c0e20c
Turn invalid_type_param_default
into a lint again
2017-05-30 22:00:30 +03:00
Vadim Petrochenkov
caecb76f08
Turn sufficiently old compatibility lints into hard errors
2017-05-30 22:00:30 +03:00
bors
03bed65514
Auto merge of #41856 - qnighy:prohibit-parenthesized-params-in-more-types, r=arielb1
...
Prohibit parenthesized params in more types.
Prohibit parenthesized parameters in primitive types, type parameters, `Self`, etc.
Fixes #32995 .
2017-05-29 11:32:14 +00:00
Masaki Hara
99993780dc
Add warning cycle #42238 .
2017-05-26 22:21:46 +09:00
est31
df188b8f97
Add lint for unused macros
2017-05-13 16:02:29 +02:00
bors
691eba1358
Auto merge of #34198 - eddyb:you're-a-bad-transmute-and-you-should-feel-bad, r=nikomatsakis
...
Make transmuting from fn item types to pointer-sized types a hard error.
Closes #19925 by removing the future compatibility lint and the associated workarounds.
This is a `[breaking-change]` if you `transmute` from a function item without casting first.
For more information on how to fix your code, see https://github.com/rust-lang/rust/issues/19925 .
2017-03-01 10:03:44 +00:00
Jeffrey Seyfried
61a9a14d29
Add warning cycle.
2017-02-28 22:15:12 +00:00
Eduard Burtescu
7650afc1ce
Make transmuting from fn item types to pointer-sized types a hard error.
2017-02-28 23:47:55 +02:00
Andrew Cann
5c90dd7978
Use a proper future-compatibility lint
2017-02-03 18:48:15 +08:00
Vadim Petrochenkov
8b060e25ba
Implement compatibility lint for legacy constructor visibilities
2017-01-29 02:57:14 +03:00
Simonas Kazlauskas
2c9c70f17b
Deny extra_requirement_in_impl forward-compat lint
...
Part of #37166
2017-01-20 01:05:54 +02:00
Andrew Cann
bcdbe942e1
Make is_useful handle empty types properly
2017-01-03 15:31:46 +08:00
Jeffrey Seyfried
cfabce2230
Demote most backwards incompatible ambiguity errors from RFC 1560 to warnings.
2016-12-15 06:02:49 +00:00
Oliver Schneider
5beeb1eec7
remove useless lifetime outlives bounds
2016-12-07 13:14:47 +01:00
Eduard Burtescu
9aaf26e7aa
rustc: rework stability to be on-demand for type-directed lookup.
2016-11-28 04:18:11 +02:00
bors
3bf2be9cee
Auto merge of #37843 - nikomatsakis:issue-33685-hard-error, r=eddyb
...
make HR_LIFETIME_IN_ASSOC_TYPE deny-by-default
It's time to fix issue #32330 .
cc #33685
cc @arielb1
2016-11-22 06:39:42 -06:00
Jeffrey Seyfried
fa8c53bae4
Start warning cycle.
2016-11-22 01:52:04 +00:00
Niko Matsakis
a257d8d49f
make HR_LIFETIME_IN_ASSOC_TYPE deny-by-default
...
It's time to fix issue #32330 .
cc #33685
2016-11-17 16:50:59 -05:00
Niko Matsakis
ddabd509a8
compare-method lint
2016-11-01 14:08:56 -04:00
bors
75a87c54d0
Auto merge of #37378 - petrochenkov:nopat, r=eddyb
...
Prohibit patterns in trait methods without bodies
They are not properly type checked
```rust
trait Tr {
fn f(&a: u8); // <- This compiles
}
```
, mostly rejected by the parser already and generally don't make much sense.
This PR is kind of a missing part of https://github.com/rust-lang/rust/pull/35015 .
Given the [statistics from crater](https://github.com/rust-lang/rust/pull/37378#issuecomment-256154994 ), the effect of this PR is mostly equivalent to improving `unused_mut` lint.
cc https://github.com/rust-lang/rust/issues/35078#issuecomment-255707355 https://github.com/rust-lang/rust/pull/35015 https://github.com/rust-lang/rfcs/pull/1685 https://github.com/rust-lang/rust/issues/35203
r? @eddyb
2016-10-29 05:41:05 -07:00
Vadim Petrochenkov
2a85211040
Make sufficiently old or low-impact compatibility lints deny-by-default
2016-10-27 12:06:03 +03:00
Vadim Petrochenkov
811a2b91de
Prohibit patterns in trait methods without bodies
2016-10-26 20:55:16 +03:00
Vadim Petrochenkov
b3cb8f68cc
Turn compatibility lint match_of_unit_variant_via_paren_dotdot
into a hard error
2016-10-05 12:22:26 +03:00
bors
5bdf79bf37
Auto merge of #36270 - petrochenkov:pipwarnagain, r=nikomatsakis
...
Make `private_in_public` compatibility lint warn-by-default again
More details: https://internals.rust-lang.org/t/regression-report-stable-2016-08-16-vs-beta-2016-08-26/3930/10
r? @nikomatsakis
2016-09-14 12:04:30 -07:00
Vadim Petrochenkov
aadbcffb7c
Issue deprecation warnings for safe accesses to extern statics
2016-09-09 01:07:01 +03:00
Vadim Petrochenkov
3be6d1f954
Make private_in_public
compatibility lint warn-by-default again
2016-09-05 00:28:44 +03:00
Ariel Ben-Yehuda
7b92d05804
turn the RFC1592 warnings into hard errors
...
The warnings have already reached stable
The test rfc1592_deprecated is covered by `bad_sized` and
`unsized6`.
Fixes #33242
Fixes #33243
2016-09-01 13:34:56 +03:00
bors
71bdeea561
Auto merge of #34923 - eddyb:deny-fn-item-transmute, r=nikomatsakis
...
Deny (by default) transmuting from fn item types to pointer-sized types.
This sets the #19925 lint (transmute from zero-sized fn item type) to `deny` by default.
Technically a `[breaking-change]`, but will not affect dependent crates because of `--cap-lints`.
2016-08-25 11:28:30 -07:00
Vadim Petrochenkov
737961b6c6
Make private_in_public
compatibility lint deny-by-default
2016-08-11 23:19:04 +03:00
Eduard Burtescu
7de83f0858
Deny (by default) transmuting from fn item types to pointer-sized types.
2016-07-26 22:57:02 +03:00
Jonas Schievink
f5d29a3b59
Move variant_size_differences out of trans
...
Also enhances the error message a bit, fixes #30505 on the way, and adds
a test (which was missing).
Closes #34018
2016-07-10 22:12:31 +02:00
Vadim Petrochenkov
2abdf96344
Add an AST sanity checking pass and use it to catch some illegal lifetime/label names
2016-05-28 20:27:57 +03:00
Niko Matsakis
ccfb74e800
warn for where/return-types that reference regions
...
This is a step towards fixing #32330 . The full fix would be a breaking
change, so we begin by issuing warnings for scenarios that will break.
2016-05-17 20:25:18 -04:00
Ariel Ben-Yehuda
6057a7f188
change the newly-added errors to warnings
...
this commit should be reverted after a release cycle
2016-05-03 18:52:55 +03:00
Niko Matsakis
b27b3e1278
change constant patterns to have a warning cycle
...
This was the original intention :(
2016-04-06 05:37:08 -04:00
vlastachu
6c73134fc7
Fixes bug which accepting using super
in use statemet.
...
Issue: #32225
2016-04-05 11:57:56 +03:00
Niko Matsakis
93e44432e1
check for both partialeq and eq
2016-03-25 10:02:56 -04:00
Niko Matsakis
f69eb8efbe
issue a future-compat lint for constants of invalid type
...
This is a [breaking-change]: according to RFC #1445 , constants used as
patterns must be of a type that *derives* `Eq`. If you encounter a
problem, you are most likely using a constant in an expression where the
type of the constant is some struct that does not currently implement
`Eq`. Something like the following:
```rust
struct SomeType { ... }
const SOME_CONST: SomeType = ...;
match foo {
SOME_CONST => ...
}
```
The easiest and most future compatible fix is to annotate the type in
question with `#[derive(Eq)]` (note that merely *implementing* `Eq` is
not enough, it must be *derived*):
```rust
struct SomeType { ... }
const SOME_CONST: SomeType = ...;
match foo {
SOME_CONST => ...
}
```
Another good option is to rewrite the match arm to use an `if`
condition (this is also particularly good for floating point types,
which implement `PartialEq` but not `Eq`):
```rust
match foo {
c if c == SOME_CONST => ...
}
```
Finally, a third alternative is to tag the type with
`#[structural_match]`; but this is not recommended, as the attribute is
never expected to be stabilized. Please see RFC #1445 for more details.
2016-03-25 06:45:42 -04:00
Brian Anderson
addde1fd6f
Make warnings of renamed and removed lints themselves lints
...
This adds the `renamed_and_removed_lints` warning, defaulting
to the warning level.
Fixes #31141
2016-03-23 23:41:48 +00:00
Aaron Turon
e477703bbf
Change inherent overlap error to a warning for now, to ease the breakage.
2016-03-18 09:48:30 -07:00
Eduard Burtescu
3855fa99ca
trans: Keep transmutes from fn item types working, but lint them.
2016-03-09 18:35:27 +02:00
Jeffrey Seyfried
5172745da7
Warn instead of error when using an inaccessable extern crate
2016-02-24 01:34:39 +00:00