Mazdak Farrokhzad
45f27643db
prepare moving HardwiredLints to rustc_session
2020-01-11 03:26:16 +01:00
Mazdak Farrokhzad
7dbccf5b55
buffered lint infra -> rustc_session
2020-01-11 03:21:34 +01:00
Mazdak Farrokhzad
82eeb8573a
prepare for moving BuiltinLintDiagnostics to rustc_session
2020-01-11 03:19:50 +01:00
Mazdak Farrokhzad
d247ac4c0d
Remove unused derives
2020-01-11 03:19:50 +01:00
Mazdak Farrokhzad
8bd3d240e3
nix syntax::errors & prefer rustc_errors over errors
2020-01-10 07:41:30 +01:00
Mazdak Farrokhzad
2c3e5d3de0
- remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!}
...
- remove syntax::{help!, span_help!, span_note!}
- remove unused syntax::{struct_span_fatal, struct_span_err_or_warn!, span_err_or_warn!}
- lintify check_for_bindings_named_same_as_variants + conflicting_repr_hints
- inline syntax::{struct_span_warn!, diagnostic_used!}
- stringify_error_code! -> error_code! & use it more.
- find_plugin_registrar: de-fatalize an error
- de-fatalize metadata errors
- move type_error_struct! to rustc_typeck
- struct_span_err! -> rustc_errors
2020-01-08 04:25:33 +01:00
Mazdak Farrokhzad
ebfd8673a7
Remove rustc_hir reexports in rustc::hir.
2020-01-05 12:49:22 +01:00
Mazdak Farrokhzad
7901c7f707
canonicalize FxHash{Map,Set} imports
2020-01-04 18:57:22 +01:00
Camille GILLOT
96180ff655
Move late lint machanism in librustc_lint.
2020-01-01 13:20:18 +01:00
Camille GILLOT
3a350e1a39
Move early lint machanism in librustc_lint.
2020-01-01 13:16:43 +01:00
Vadim Petrochenkov
70f1d57048
Rename syntax_pos
to rustc_span
in source code
2020-01-01 09:15:18 +03:00
Camille GILLOT
6b87d5cdf1
Syntax for hir::Ty.
2019-12-27 19:20:28 +01:00
Camille GILLOT
2b1cfe5b5b
Syntax for hir::Expr.
2019-12-26 23:36:12 +01:00
Mark Rousskov
a06baa56b9
Format the world
2019-12-22 17:42:47 -05:00
Camille GILLOT
9694ab9e18
Use Arena inside hir::Body.
2019-12-21 23:39:19 +01:00
Camille GILLOT
42c03e4bb4
Use Arena inside hir::Mod.
2019-12-21 23:34:34 +01:00
Camille GILLOT
e2526120f2
Use Arena inside hir::StructField.
2019-12-21 23:33:42 +01:00
Camille GILLOT
4f1c88be46
Use Arena inside hir::EnumDef.
2019-12-21 23:32:42 +01:00
Camille GILLOT
5fec1ca0ff
Use Arena inside hir::ImplItem.
2019-12-21 23:31:47 +01:00
Camille GILLOT
0f7d77363b
Use Arena inside hir::TraitItem.
2019-12-21 23:30:52 +01:00
Camille GILLOT
acf33f2d6b
Use Arena inside hir::ForeignItem.
2019-12-21 23:29:27 +01:00
Camille GILLOT
084e6722f9
Use Arena inside hir::Item.
2019-12-21 23:17:29 +01:00
Mazdak Farrokhzad
abf2e7aa95
Remove ast::{Impl,Trait}{Item,ItemKind}
.
2019-12-12 18:05:05 +01:00
Mazdak Farrokhzad
b499a88dfc
Unify assoc item visitors more.
2019-12-12 18:01:33 +01:00
Mazdak Farrokhzad
0d8a9d74e3
Unify associated item visitor.
2019-12-12 18:00:00 +01:00
Vadim Petrochenkov
db357a6e3b
rustc_plugin: Remove support for adding plugins from command line
2019-12-01 20:53:25 +03:00
Mikhail Babenko
f07bd06137
allow customising ty::TraitRef's printing behavior
...
fix clippy
allow customising ty::TraitRef's printing behavior
fix clippy
stylistic fix
2019-11-29 17:30:21 +03:00
Guillaume Gomez
798e389e57
Update to use new librustc_error_codes library
2019-11-14 13:05:42 +01:00
Mark Rousskov
8c29b74b15
Remove dead code for encoding/decoding lint IDs
...
This helps decouple the lint system from needing the implicit TLS TyCtxt
as well.
2019-11-12 13:04:31 -05:00
Yuki Okushi
12ffe5ffdd
Rollup merge of #66044 - RalfJung:uninit-lint, r=oli-obk
...
Improve uninit/zeroed lint
* Also warn when creating a raw pointer with a NULL vtable.
* Also identify `MaybeUninit::uninit().assume_init()` and `MaybeUninit::zeroed().assume_init()` as dangerous.
2019-11-07 09:20:36 +09:00
Mark Rousskov
c68df7c503
Delete lint buffer from Session
2019-11-03 21:52:42 -05:00
Ralf Jung
7ff57edb93
also identiy MaybeUninit::uninit().assume_init() as dangerous
2019-11-02 17:52:57 +01:00
Mazdak Farrokhzad
a649b1666c
Rollup merge of #65657 - nnethercote:rm-InternedString-properly, r=eddyb
...
Remove `InternedString`
This PR removes `InternedString` by converting all occurrences to `Symbol`. There are a handful of places that need to use the symbol chars instead of the symbol index, e.g. for stable sorting; local conversions `LocalInternedString` is used in those places.
r? @eddyb
2019-10-23 22:19:19 +02:00
Mark Rousskov
4e8d1b2292
Add some documentation
2019-10-22 16:53:28 -04:00
Nicholas Nethercote
b8214e9b44
Convert fields within DefPathData
from InternedString
to Symbol
.
...
It's a full conversion, except in `DefKey::compute_stable_hash()` where
a `Symbol` now is converted to an `InternedString` before being hashed.
This was necessary to avoid test failures.
2019-10-21 17:17:36 +11:00
Mark Rousskov
6be0a7081a
Update API to be more compatible with plugin needs
...
Move to using Box<dyn Fn() -> ...> so that we can let plugins register
state.
This also adds a callback that'll get called from plugin registration so
that Clippy and other tools can register lints without using the plugin
API. The plugin API still works, but this new API is more compatible
with drivers other than rustc.
2019-10-17 19:41:21 -04:00
Mark Rousskov
dab3bd6cda
Create lint store during plugin registration
...
Remove lint store from Session
2019-10-17 19:41:21 -04:00
Mark Rousskov
da56d1d201
Remove all borrows of lint store from Session from librustc
...
Access through tcx is fine -- by that point, the lint store is frozen,
but direct access through Session will go away in future commits, as
lint store is still mutable in early stages of Session, and will be
removed completely.
2019-10-17 19:41:21 -04:00
Mark Rousskov
c4475c753b
Access future incompatibility information directly
...
Avoid querying LintStore when not necessary
2019-10-17 19:41:21 -04:00
Mark Rousskov
7abb1fafce
Remove side table of future incompatibility info
...
Moves this information to a direct field of Lint, which is where it
belongs.
2019-10-17 19:41:21 -04:00
Mark Rousskov
aa4ee2cc0f
Move to storing constructor functions inside LintStore
...
This stops storing the pass objects and instead stores constructor
functions.
The primary effect is that LintStore no longer has any interior
mutability.
2019-10-17 19:16:41 -04:00
Mark Rousskov
24545128eb
Take lint passes as constructor functions
2019-10-17 19:16:41 -04:00
Mark Rousskov
7fef39791a
Make get_lints be a static function
...
This moves from calling get_lints on instantiated pass objects to the
raw object
2019-10-17 19:16:41 -04:00
Mark Rousskov
68c07db80a
No longer implicitly register lints when registering passes
...
This is in preparation for on-demand constructing passes
2019-10-17 19:16:41 -04:00
Mark Rousskov
e1079c82be
Split out just registration to separate function
2019-10-17 19:16:41 -04:00
Mark Rousskov
b060f3b84d
Split module and crate late pass registration
2019-10-17 19:16:41 -04:00
Mark Rousskov
748eccd488
Lints being from a plugin is dependent on the lint, not the registration
2019-10-17 19:16:41 -04:00
Mark Rousskov
2121b04751
Handle lints, not passes in push_lints
...
This extracts the call to get_lints() to callers.
2019-10-17 19:16:41 -04:00
Mark Rousskov
577d442fe8
De-propagate optional session from lint registration
...
This is straight up removing dead code, but is a separate commit from
the previous to avoid conflating clean up and important changes.
2019-10-17 19:16:40 -04:00
Mark Rousskov
47a443c50d
Duplicate lint specifications are always bug!
...
Replace early_error and sess.err with bug!, in all cases. If the
compiler we're running with, including plugins, is registering something
twice, that's a (compiler/plugin) programmer error -- we should not try
to be nice at the cost of developer ergononomics (hiding the stacktrace
of the second registration is bad).
This also is basically a static bug in ~all cases so it should not be a
detriment to users, including with plugins.
2019-10-17 19:16:40 -04:00