-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 9 pull requests #65723
Rollup of 9 pull requests #65723
Commits on Oct 17, 2019
-
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.
Configuration menu - View commit details
-
Copy full SHA for 47a443c - Browse repository at this point
Copy the full SHA 47a443cView commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 577d442 - Browse repository at this point
Copy the full SHA 577d442View commit details -
Handle lints, not passes in push_lints
This extracts the call to get_lints() to callers.
Configuration menu - View commit details
-
Copy full SHA for 2121b04 - Browse repository at this point
Copy the full SHA 2121b04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 748eccd - Browse repository at this point
Copy the full SHA 748eccdView commit details -
Configuration menu - View commit details
-
Copy full SHA for b060f3b - Browse repository at this point
Copy the full SHA b060f3bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e1079c8 - Browse repository at this point
Copy the full SHA e1079c8View commit details -
No longer implicitly register lints when registering passes
This is in preparation for on-demand constructing passes
Configuration menu - View commit details
-
Copy full SHA for 68c07db - Browse repository at this point
Copy the full SHA 68c07dbView commit details -
Make get_lints be a static function
This moves from calling get_lints on instantiated pass objects to the raw object
Configuration menu - View commit details
-
Copy full SHA for 7fef397 - Browse repository at this point
Copy the full SHA 7fef397View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2454512 - Browse repository at this point
Copy the full SHA 2454512View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for aa4ee2c - Browse repository at this point
Copy the full SHA aa4ee2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for c1abc30 - Browse repository at this point
Copy the full SHA c1abc30View commit details -
Remove side table of future incompatibility info
Moves this information to a direct field of Lint, which is where it belongs.
Configuration menu - View commit details
-
Copy full SHA for 7abb1fa - Browse repository at this point
Copy the full SHA 7abb1faView commit details -
Access future incompatibility information directly
Avoid querying LintStore when not necessary
Configuration menu - View commit details
-
Copy full SHA for c4475c7 - Browse repository at this point
Copy the full SHA c4475c7View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for da56d1d - Browse repository at this point
Copy the full SHA da56d1dView commit details -
Create lint store during plugin registration
Remove lint store from Session
Configuration menu - View commit details
-
Copy full SHA for dab3bd6 - Browse repository at this point
Copy the full SHA dab3bd6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b761367 - Browse repository at this point
Copy the full SHA b761367View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 6be0a70 - Browse repository at this point
Copy the full SHA 6be0a70View commit details
Commits on Oct 20, 2019
-
Derive
Rustc{En,De}codable
forTokenStream
.`TokenStream` used to be a complex type, but it is now just a newtype around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding that discards the `IsJoint` and custom decoding that adds `NonJoint` back in for every token tree. This requires building intermediate `Vec<TokenTree>`s. This commit makes `TokenStream` derive `Rustc{En,De}codable`. This simplifies the code, and avoids the creation of the intermediate vectors, saving up to 3% on various benchmarks. It also changes the AST JSON output in one test.
Configuration menu - View commit details
-
Copy full SHA for c290293 - Browse repository at this point
Copy the full SHA c290293View commit details
Commits on Oct 21, 2019
-
Convert some
InternedString
s toSymbols
.This avoids the needs for various conversions, and makes the code slightly faster, because `Symbol` comparisons and hashing is faster.
Configuration menu - View commit details
-
Copy full SHA for 02edd14 - Browse repository at this point
Copy the full SHA 02edd14View commit details -
Configuration menu - View commit details
-
Copy full SHA for c325553 - Browse repository at this point
Copy the full SHA c325553View commit details -
Configuration menu - View commit details
-
Copy full SHA for 78c3427 - Browse repository at this point
Copy the full SHA 78c3427View commit details -
Its fourth argument is always `Some(pred)`, so the pattern matching is unnecessary. This commit inlines and removes it.
Configuration menu - View commit details
-
Copy full SHA for ddc1c27 - Browse repository at this point
Copy the full SHA ddc1c27View commit details -
Convert fields within
DefPathData
fromInternedString
toSymbol
.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.
Configuration menu - View commit details
-
Copy full SHA for b8214e9 - Browse repository at this point
Copy the full SHA b8214e9View commit details -
Change
SymbolName::name
fromInternedString
toSymbol
.This requires changing the `PartialOrd`/`Ord` implementations to look at the chars rather than the symbol index.
Configuration menu - View commit details
-
Copy full SHA for dddacf1 - Browse repository at this point
Copy the full SHA dddacf1View commit details -
Use
Symbol
for codegen unit names.This is a straightforward replacement except for two places where we have to convert to `LocalInternedString` to get a stable sort.
Configuration menu - View commit details
-
Copy full SHA for 2da7a9c - Browse repository at this point
Copy the full SHA 2da7a9cView commit details -
By using `LocalInternedString` instead for the few remaining uses.
Configuration menu - View commit details
-
Copy full SHA for 08e2f05 - Browse repository at this point
Copy the full SHA 08e2f05View commit details -
Deprecated proc_macro doesn't trigger warning on build library
Change-Id: Ib3a396e7334d209fe6c6ef425bbfc7b2ae471378
Configuration menu - View commit details
-
Copy full SHA for 33910f9 - Browse repository at this point
Copy the full SHA 33910f9View commit details
Commits on Oct 22, 2019
-
Deprecated proc_macro doesn't trigger warning on build library
Change-Id: Ib3a396e7334d209fe6c6ef425bbfc7b2ae471378
Configuration menu - View commit details
-
Copy full SHA for c027be0 - Browse repository at this point
Copy the full SHA c027be0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed965f1 - Browse repository at this point
Copy the full SHA ed965f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 74db3e8 - Browse repository at this point
Copy the full SHA 74db3e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a80a11 - Browse repository at this point
Copy the full SHA 7a80a11View commit details -
Configuration menu - View commit details
-
Copy full SHA for 371cc39 - Browse repository at this point
Copy the full SHA 371cc39View commit details -
relax ExactSizeIterator bound on write_bytes: too many iterators don'…
…t have that bound
Configuration menu - View commit details
-
Copy full SHA for fe84809 - Browse repository at this point
Copy the full SHA fe84809View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e8d1b2 - Browse repository at this point
Copy the full SHA 4e8d1b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for eeb549b - Browse repository at this point
Copy the full SHA eeb549bView commit details
Commits on Oct 23, 2019
-
Rollup merge of rust-lang#65144 - clarfon:moo, r=sfackler
Add Cow::is_borrowed and Cow::is_owned Implements rust-lang#65143.
Configuration menu - View commit details
-
Copy full SHA for 360cdf4 - Browse repository at this point
Copy the full SHA 360cdf4View commit details -
Rollup merge of rust-lang#65193 - Mark-Simulacrum:lockless-lintstore,…
… r=nikomatsakis Lockless LintStore This removes mutability from the lint store after registration. Each commit stands alone, for the most part, though they don't make sense out of sequence. The intent here is to move LintStore to a more parallel-friendly architecture, although also just a cleaner one from an implementation perspective. Specifically, this has the following changes: * We no longer implicitly register lints when registering lint passes * For the most part this means that registration calls now likely want to call something like: `lint_store.register_lints(&Pass::get_lints())` as well as `register_*_pass`. * In theory this is a simplification as it's much easier for folks to just register lints and then have passes that implement whichever lint however they want, rather than necessarily tying passes to lints. * Lint passes still have a list of associated lints, but a followup PR could plausibly change that * This list must be known for a given pass type, not instance, i.e., `fn get_lints()` is the signature instead of `fn get_lints(&self)` as before. * We do not store pass objects, instead storing constructor functions. This means we always get new passes when running lints (this happens approximately once though for a given compiler session, so no behavior change is expected). * Registration API is _much_ simpler: generally all functions are just taking `Fn() -> PassObject` rather than several different `bool`s.
Configuration menu - View commit details
-
Copy full SHA for 2cb7d20 - Browse repository at this point
Copy the full SHA 2cb7d20View commit details -
Rollup merge of rust-lang#65583 - eddyb:more-query-like-cross-crate-t…
…ables, r=michaelwoerister rustc_metadata: use a table for super_predicates, fn_sig, impl_trait_ref. This is an attempt at a part of rust-lang#65407, i.e. moving parts of cross-crate "metadata" into tables that match queries more closely. Three new tables should be enough to see some perf/metadata size changes. (need to do something similar to rust-lang#59953 (comment)) There are other bits of data that could be made into tables, but they can be more compact so the impact would likely be not as bad, and they're also more work to set up.
Configuration menu - View commit details
-
Copy full SHA for d41bf54 - Browse repository at this point
Copy the full SHA d41bf54View commit details -
Rollup merge of rust-lang#65641 - nnethercote:derive-TokenStream-Enco…
…dable-Decodable, r=petrochenkov Derive `Rustc{En,De}codable` for `TokenStream`. `TokenStream` used to be a complex type, but it is now just a newtype around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding that discards the `IsJoint` and custom decoding that adds `NonJoint` back in for every token tree. This requires building intermediate `Vec<TokenTree>`s. This commit makes `TokenStream` derive `Rustc{En,De}codable`. This simplifies the code, and avoids the creation of the intermediate vectors, saving up to 3% on various benchmarks. It also changes the AST JSON output in one test. r? @petrochenkov
Configuration menu - View commit details
-
Copy full SHA for dd47daf - Browse repository at this point
Copy the full SHA dd47dafView commit details -
Rollup merge of rust-lang#65648 - nnethercote:rm-intersect_opt, r=nik…
…omatsakis Eliminate `intersect_opt`. Its fourth argument is always `Some(pred)`, so the pattern matching is unnecessary. This commit inlines and removes it. r? @nikomatsakis
Configuration menu - View commit details
-
Copy full SHA for d8015f6 - Browse repository at this point
Copy the full SHA d8015f6View commit details -
Rollup merge of rust-lang#65657 - nnethercote:rm-InternedString-prope…
…rly, 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
Configuration menu - View commit details
-
Copy full SHA for c020d64 - Browse repository at this point
Copy the full SHA c020d64View commit details -
Rollup merge of rust-lang#65666 - XiangQingW:proc_macro, r=petrochenkov
Deprecated proc_macro doesn't trigger warning on build library Fix rust-lang#65189
Configuration menu - View commit details
-
Copy full SHA for cea5879 - Browse repository at this point
Copy the full SHA cea5879View commit details -
Rollup merge of rust-lang#65691 - GuillaumeGomez:2018-edition-E0659, …
…r=Dylan-DPC Update E0659 error code long explanation to 2018 edition Fixes rust-lang#65571 r? @Centril
Configuration menu - View commit details
-
Copy full SHA for 9bcebab - Browse repository at this point
Copy the full SHA 9bcebabView commit details -
Rollup merge of rust-lang#65704 - RalfJung:exact-size, r=oli-obk
relax ExactSizeIterator bound on write_bytes Too many iterators don't have that bound. Instead we do run-time checks. r? @oli-obk
Configuration menu - View commit details
-
Copy full SHA for fe3eb32 - Browse repository at this point
Copy the full SHA fe3eb32View commit details