Matthias Krüger
9a82f74cdf
Rollup merge of #92783 - FabianWolff:issue-92726, r=nikomatsakis
...
Annotate dead code lint with notes about ignored derived impls
Fixes #92726 . CC `@pmetzger,` is this what you had in mind?
r? `@nikomatsakis`
2022-01-19 10:42:16 +01:00
Cameron Steffen
45db716902
Replace NestedVisitorMap with NestedFilter
2022-01-16 16:02:36 -06:00
Camille GILLOT
67727aa7c3
Reduce use of local_def_id_to_hir_id.
2022-01-15 21:26:25 +01:00
Fabian Wolff
8b459dd738
Use span of ignored impls for explanatory note
2022-01-15 21:02:50 +01:00
Fabian Wolff
bd1f09d417
Annotate dead code lint with notes about ignored derived impls
2022-01-11 21:06:18 +01:00
Peter Jaszkowiak
c4bafafac1
Remove in_band_lifetimes for rustc_passes
2021-12-15 20:12:53 -07:00
Erik Desjardins
bec5a91450
only check for automatically_derived on impls, not individual methods
...
this matches behavior of existing code
b27661eb33/compiler/rustc_passes/src/liveness.rs (L326-L333)
2021-10-02 09:53:51 -04:00
Erik Desjardins
eb4ba58572
perf: only check for rustc_trivial_field_reads attribute on traits
...
The checks removed here caused a small perf regression:
https://github.com/rust-lang/rust/pull/88824#issuecomment-932664761
Since the attribute is currently only applied to traits, I don't think
it's worth keeping the additional checks for now.
If/when we decide to apply the attribute somewhere else, we can
(partially) revert this and evaluate if the perf impact is acceptable.
2021-10-01 22:07:22 -04:00
Camille GILLOT
db9fea508a
Avoid more invocations of hir_crate query.
2021-09-29 23:16:47 +02:00
Fabian Wolff
79adda930f
Ignore automatically derived impls of Clone and Debug in dead code analysis
2021-09-09 19:49:07 +02:00
Camille GILLOT
d119a13137
Rename walk_crate.
2021-09-02 19:23:11 +02:00
Camille GILLOT
7ec973d9ce
Stop using walk_crate.
2021-09-02 19:08:58 +02:00
Gary Guo
2969aece41
Fix dead code warning when inline const is used in pattern
2021-08-14 22:58:04 +01:00
Vadim Petrochenkov
b08576b2ad
rustc: Replace HirIds with LocalDefIds in AccessLevels tables
...
and passes using them - primarily privacy checking, stability checking and dead code checking.
WIP
2021-07-31 19:31:29 +03:00
Felix S. Klock II
b6e9d069eb
Allow some temporarily dead code.
...
I expect these two methods to come back very soon; noise of removing them to satisfy lint seems wrong.
2021-07-21 22:57:10 -04:00
Felix S. Klock II
cf337d1119
Revert PR 81473 to resolve (on mainline) issues 81626 and 81658.
...
Revert "Add missing brace"
This reverts commit 85ad773049536d7fed9a94ae0ac74f97135c8655.
Revert "Simplify base_expr"
This reverts commit 899aae465eb4ef295dc1eeb2603f744568e0768c.
Revert "Warn write-only fields"
This reverts commit d3c69a4c0dd98af2611b7553d1a65afef6a6ccb0.
2021-07-21 22:49:52 -04:00
Fabian Wolff
dc639c944a
Warn about useless assignments of variables/fields to themselves
2021-07-14 16:29:35 +02:00
bors
3396a383bb
Auto merge of #85178 - cjgillot:local-crate, r=oli-obk
...
Remove CrateNum parameter for queries that only work on local crate
The pervasive `CrateNum` parameter is a remnant of the multi-crate rustc idea.
Using `()` as query key in those cases avoids having to worry about the validity of the query key.
2021-05-17 01:42:03 +00:00
Fabian Wolff
46d55d6549
Warn about unused pub fields in non-pub structs
2021-05-15 13:06:17 +02:00
Camille GILLOT
9849327384
Use () for privacy.
2021-05-12 13:58:45 +02:00
Camille GILLOT
829a9d33a9
Use () for entry_fn.
2021-05-12 13:58:42 +02:00
Charles Lew
d261df4a72
Implement RFC 1260 with feature_name imported_main.
2021-04-29 08:35:08 +08:00
Vadim Petrochenkov
b25d3ba781
ast/hir: Rename field-related structures
...
StructField -> FieldDef ("field definition")
Field -> ExprField ("expression field", not "field expression")
FieldPat -> PatField ("pattern field", not "field pattern")
Also rename visiting and other methods working on them.
2021-03-16 11:41:24 +03:00
Camille GILLOT
a50454d6c8
Access attrs directly from HirId in rustc_passes::dead.
2021-03-09 19:09:30 +01:00
Tomasz Miąsko
343b673877
Consider auto derefs before warning about write only fields
...
Changes from 81473 extended the dead code lint with an ability to detect
fields that are written to but never read from. The implementation skips
over fields on the left hand side of an assignment, without marking them
as live.
A field access might involve an automatic dereference and de-facto read
the field. Conservatively mark expressions with deref adjustments as
live to avoid generating false positive warnings.
2021-02-19 00:00:00 +00:00
Camille GILLOT
996dc8d5c5
Only store a LocalDefId in hir::ForeignItem.
2021-02-15 19:32:29 +01:00
Camille GILLOT
786a80e9ea
Only store a LocalDefId in hir::ImplItem.
2021-02-15 19:32:29 +01:00
Camille GILLOT
a871a0f111
Only store a LocalDefId in hir::TraitItem.
2021-02-15 19:32:28 +01:00
Camille GILLOT
cebbba081e
Only store a LocalDefId in hir::Item.
...
Items are guaranteed to be HIR owner.
2021-02-15 19:32:10 +01:00
Camille GILLOT
c676e358a5
Use ItemId as a strongly typed index.
2021-02-15 19:24:58 +01:00
Oli Scherer
85ad773049
Add missing brace
2021-01-28 17:49:40 +01:00
Seo Sanghyeon
899aae465e
Simplify base_expr
...
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2021-01-29 01:44:15 +09:00
Seo Sanghyeon
d3c69a4c0d
Warn write-only fields
2021-01-28 23:56:13 +09:00
Tomasz Miąsko
99a1dea1b7
Do not mark unit variants as used when in path pattern
...
Record that we are processing a pattern so that code responsible for
handling path resolution can correctly decide whether to mark it as
used or not.
2021-01-23 00:00:00 +00:00
Joshua Nelson
a8ff647deb
Separate out a hir::Impl struct
...
This makes it possible to pass the `Impl` directly to functions, instead
of having to pass each of the many fields one at a time. It also
simplifies matches in many cases.
2021-01-12 20:32:33 -05:00
Matthias Krüger
d12a358673
use matches!() macro in more places
2020-12-24 13:35:12 +01:00
LingMan
7654b12112
Simplify visit_{foreign,trait}_item
...
Using an `if` seems like a better semantic fit and saves a few lines.
2020-12-08 15:56:15 +01:00
Camille GILLOT
37853f925f
Visit ForeignItems when marking dead code.
2020-12-08 08:07:55 +01:00
Camille GILLOT
032f68d625
Remove ForeignMod struct.
2020-11-26 21:32:27 +01:00
Camille GILLOT
419a9186a4
Store ForeignItem in a side table.
2020-11-26 21:29:27 +01:00
Dániel Buga
8e548bf8d6
Remove weird slice conversion
2020-10-18 10:31:58 +02:00
Dániel Buga
6f43af26e9
Clean up surprising borrow
2020-10-18 10:31:57 +02:00
Bastian Kauschke
438d229b25
dead_code: look at trait impls even if they don't contain items
2020-09-22 22:13:58 +02:00
Bastian Kauschke
e5b82a56c5
allow concrete self types in consts
2020-09-13 22:53:51 +02:00
LeSeulArtichaut
3e14b684dd
Change ty.kind to a method
2020-09-04 17:47:51 +02:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00