summary refs log tree commit diff
path: root/src/librustc_metadata
AgeCommit message (Collapse)AuthorLines
2019-12-13Require stable/unstable annotations for the constness of all stable ↵Oliver Scherer-0/+19
functions with a `const` modifier
2019-12-11Rollup merge of #67074 - ehuss:extern-options, r=petrochenkovMazdak Farrokhzad-9/+11
Add options to --extern flag. This changes the `--extern` flag so that it can take a series of options that changes its behavior. The general syntax is `[opts ':'] name ['=' path]` where `opts` is a comma separated list of options. Two options are supported, `priv` which replaces `--extern-private` and `noprelude` which avoids adding the crate to the extern prelude. ```text --extern priv:mylib=/path/to/libmylib.rlib --extern noprelude:alloc=/path/to/liballoc.rlib ``` `noprelude` is to be used by Cargo's build-std feature in order to use `--extern` to reference standard library crates. This also includes a second commit which adds the `aux-crate` directive to compiletest. I can split this off into a separate PR if desired, but it helps with defining these kinds of tests. It is based on #54020, and can be used in the future to replace and simplify some of the Makefile tests.
2019-12-09Add options to --extern flag.Eric Huss-9/+11
2019-12-08Auto merge of #66981 - michaelwoerister:measureme-0.5.0, r=Mark-Simulacrumbors-1/+1
Update measureme crate to 0.5.0 This PR updates the `measureme` self-profiling crate to the latest release. Heads up, this version changes the trace file format, so the `summarize` tool on perf.rlo needs to be updated to 0.5 too. r? @Mark-Simulacrum cc @wesleywiser
2019-12-08Rollup merge of #66991 - Nashenas88:body_cache_cleanup, r=eddybMazdak Farrokhzad-5/+5
Cleanup BodyCache After this PR: - `BodyCache` is renamed to `BodyAndCache` - `ReadOnlyBodyCache` is renamed to `ReadOnlyBodyAndCache` - `ReadOnlyBodyAndCache::body` fn is removed and all calls to it are replaced by a deref (possible due to fix of its `Deref` imp in #65947) cc @eddyb @oli-obk
2019-12-06Rename to `then_some` and `then`varkor-1/+1
2019-12-06Use `to_option` in various placesvarkor-5/+3
2019-12-05rustc: Apply clearer naming to BodyAndCache, fix Deref impl, remove unneeded ↵Paul Daniel Faria-5/+5
Index impl, remove body fn rustc_codegen_ssa: Fix BodyAndCache reborrow to Body and change instances of body() call to derefence rustc_mir: Fix BodyAndCache reborrow to Body and change intances of body() call to derefence
2019-12-04Auto merge of #66275 - oli-obk:organize-intrinsics-promotion-checks, r=RalfJungbors-1/+11
Organize intrinsics promotion checks cc @vertexclique supersedes #61835 r? @RalfJung
2019-12-03Update measureme crate to 0.5.0.Michael Woerister-1/+1
2019-12-03Explain why "loading" constness from extern crates does not necessarily load ↵Oliver Scherer-1/+5
anything
2019-12-03Check intrinsics for callability in const fnsMahmut Bulut-1/+7
2019-12-02syntax: Use `ast::MacArgs` for macro definitionsVadim Petrochenkov-1/+4
2019-12-02Remove HasLocalDecls impl from BodyCache's, properly reborrow to Body, ↵Paul Daniel Faria-2/+2
rename all body_cache back to body
2019-12-02Fix remaining compilation issuesPaul Daniel Faria-4/+10
2019-12-02Simplify BodyCache impl and fix all remaining type errors in librustc_mir ↵Paul Daniel Faria-6/+5
(lifetime errors still exist)
2019-12-02Fix typo caused by rebasingPaul Daniel Faria-1/+1
2019-12-02Move predecessors cache back to its own typePaul Daniel Faria-1/+1
This ensures that the cache can be properly ignored during encoding and decoding. Fix panics that arose due to lack of encoding
2019-11-30Rollup merge of #66895 - Centril:rustc_feature, r=oli-obkMazdak Farrokhzad-17/+19
Feature gating *declarations* => new crate `rustc_feature` This PR moves the data-oriented parts of feature gating into its own crate, `rustc_feature`. The parts consist of some data types as well as `accepted`, `active`, `removed`, and `builtin_attrs`. Feature gate checking itself remains in `syntax::feature_gate::check`. The parts which define how to emit feature gate errors could probably be moved to `rustc_errors` or to the new `rustc_session` crate introduced in #66878. The visitor itself could probably be moved as a pass in `rustc_passes` depending on how the dependency edges work out. The PR also contains some drive-by cleanup of feature gate checking. As such, the PR probably best read commit-by-commit. r? @oli-obk cc @petrochenkov cc @Mark-Simulacrum
2019-11-30move GateIssue to rustc_feature & simplify emit_feature_errMazdak Farrokhzad-17/+19
2019-11-28rustc: Move some queries to `rustc_metadata`Vadim Petrochenkov-23/+21
2019-11-28rustc_metadata: Avoid some side effects during speculative crate resolutionVadim Petrochenkov-28/+5
Namely, `update_extern_crate`. Also, stop tracking visited crates in `update_extern_crate`, the rank check does the same thing (prevents visiting dependencies if the rank didn't change), but more precisely.
2019-11-28rustc_metadata: Pass SVH by valueVadim Petrochenkov-11/+10
2019-11-28rustc_metadata: Move `has_global_allocator` from session to cstoreVadim Petrochenkov-19/+21
2019-11-28rustc_metadata: Privatize some fields and methods of `CStore`Vadim Petrochenkov-7/+15
After it's moved to `creader.rs`
2019-11-28rustc_metadata: Merge `cstore.rs` into `creader.rs`Vadim Petrochenkov-114/+98
2019-11-28rustc_metadata: Privatize `CrateMetadata::root`Vadim Petrochenkov-16/+32
2019-11-28rustc_metadata: Privatize all fields of `CrateRoot`Vadim Petrochenkov-57/+105
All of them are read-only
2019-11-28rustc_metadata: Privatize `CrateMetadata::dep_kind`Vadim Petrochenkov-6/+12
2019-11-28rustc_metadata: Privatize `CrateMetadata::source`Vadim Petrochenkov-6/+10
2019-11-28rustc_metadata: Privatize `CrateMetadata::extern_crate`Vadim Petrochenkov-31/+16
2019-11-28rustc_metadata: Privatize `CrateMetadata::dependencies`Vadim Petrochenkov-5/+13
2019-11-28rustc_metadata: Cleanup generation of crate dependency listsVadim Petrochenkov-33/+28
2019-11-27rustc_metadata: use a macro to deduplicate LazyPerDefTables and ↵Eduard-Mihai Burtescu-69/+47
PerDefTableBuilders.
2019-11-27rustc_metadata: remove Encodable requirements from LazyMeta impls.Eduard-Mihai Burtescu-12/+11
2019-11-27rustc_metadata: use a separate TableBuilder type to build a Table.Eduard-Mihai Burtescu-33/+39
2019-11-27rustc_metadata: replace PerDefTable<T> with Table<DefIndex, T>.Eduard-Mihai Burtescu-113/+68
2019-11-25Tweak multiple allocators errorEsteban Küber-1/+3
2019-11-20Rollup merge of #66496 - petrochenkov:metapriv2, r=eddybMazdak Farrokhzad-282/+343
rustc_metadata: Privatize more things Continuation of https://github.com/rust-lang/rust/pull/66056. The most notable change here is that `CrateMetadata` is moved from `cstore.rs` to `decoder.rs`. Most of uses of `CrateMetadata` fields are in the decoder and uses of `root: CrateRoot` and other fields are so intertwined with each other that it would be hard to move a part of them into `cstore.rs` to privatize `CrateMetadata` fields, so we are going the other way round. `cstore.rs` can probably be dismantled now, but I'll leave this to some other day. Similarly, remaining `CrateMetadata` fields can be privatized by introducing some getter/setter methods, but not today. r? @eddyb
2019-11-17rustc_metadata: Cleanup crate search with exact pathsVadim Petrochenkov-26/+22
2019-11-17rustc_metadata: Remove `CrateMetadata::is_proc_macro_crate`Vadim Petrochenkov-12/+8
2019-11-17rustc_metadata: Stop leaking `Lazy` from the `rmeta` moduleVadim Petrochenkov-22/+36
2019-11-17rustc_metadata: Move `CrateMetadata` into `decoder.rs`Vadim Petrochenkov-142/+135
It allows to make most of its fields private
2019-11-17rustc_metadata: Give a constructor to `CratePaths`Vadim Petrochenkov-3/+9
2019-11-17rustc_metadata: Minor cleanupVadim Petrochenkov-3/+3
2019-11-17rustc_metadata: Give a constructor to `CrateMetadata`Vadim Petrochenkov-34/+53
2019-11-17rustc_metadata: Give a constructor to `CrateLocator`Vadim Petrochenkov-48/+81
2019-11-17rustc_metadata: `locator::Context` -> `CrateLocator`Vadim Petrochenkov-26/+26
2019-11-17rustc_metadata: Move some structs from `cstore` to `decoder`Vadim Petrochenkov-27/+31
This allows to privatize their fields.
2019-11-15Remove newtype for qualifs in `rustc_metadata`Dylan MacKenzie-17/+12
We have a proper type for these now, so the wrapper is no longer necessary.