Commit Graph

67618 Commits

Author SHA1 Message Date
Simon Sapin
f912d771ba Make git commit info optional and per-package in channel manifests
At the moment it is always missing for Cargo and RLS.
Their respective build systems need to be modified to include
`git-commit-hash` files in their "dist" tarballs.
2017-09-05 19:38:28 +02:00
Jon Gjengset
00bdae02fd
Avoid weird or_insert_with example 2017-09-05 13:37:36 -04:00
Mark Simulacrum
f87696b268 Test rustdoc unit tests.
Doc tests are temporarily disabled until next release cycle, since
current beta Cargo errors on them. Upgrade should be smooth as the
relevant tests are already fixed in this commit.
2017-09-05 11:17:52 -06:00
Jon Gjengset
35c7943fd2
Add or_default to Entry APIs 2017-09-05 13:11:38 -04:00
Ralf Jung
13cf229037 disable gcc warnings 2017-09-05 18:46:26 +02:00
QuietMisdreavus
a9f0f6df94 add "Implementations on Foreign Types" to the sidebar 2017-09-05 11:21:18 -05:00
QuietMisdreavus
b357a9c09c if not showing default docs on an impl, autohide the items 2017-09-05 11:21:18 -05:00
QuietMisdreavus
30e526805d rustdoc: add new "Implementations on Foreign Types" section to traits 2017-09-05 11:21:14 -05:00
Niko Matsakis
37c9a60a7d factor out helper method 2017-09-05 12:19:36 -04:00
Masaki Hara
099bb1ba8a Fix misdetection of upstream intercrate ambiguity. 2017-09-05 12:19:35 -04:00
Masaki Hara
4d503b0c74 Add downstream tests for intercrate ambiguity hints. 2017-09-05 12:19:35 -04:00
Masaki Hara
d153ff3f79 Print more detailed trait-ref for intercrate ambiguity. 2017-09-05 12:19:35 -04:00
Masaki Hara
84bfc33fac Unify intercrate ambiguity emitters into a function. 2017-09-05 12:19:35 -04:00
Masaki Hara
043786dcdf Fix a very subtle mistake in a ui test. 2017-09-05 12:19:35 -04:00
Masaki Hara
a59cc32ed4 Add tests for intercrate ambiguity hints. 2017-09-05 12:19:35 -04:00
Masaki Hara
bebd622198 Slightly modify hint messages. 2017-09-05 12:19:35 -04:00
Masaki Hara
d49f278263 Add hints when intercrate ambiguity causes overlap. 2017-09-05 12:19:33 -04:00
Alex Crichton
0cdc58a1bc rustc: Store InternedString in DefPathData
Previously a `Symbol` was stored there, but this ended up causing hash
collisions in situations that otherwise shouldn't have a hash collision. Only
the symbol's string value was hashed, but it was possible for distinct symbols
to have the same string value, fooling various calcuations into thinking that
these paths *didn't* need disambiguating data when in fact they did!

By storing `InternedString` instead we're hopefully triggering all the exising
logic to disambiguate paths with same-name `Symbol` but actually distinct
locations.
2017-09-05 07:47:27 -07:00
Alex Crichton
9a231961d5 rustc: Move stability functionality into queries
This commit primarily removes the `stability` field from `TyCtxt` as well as its
internal mutable state, instead using a query to build the stability index as
well as primarily using queries for other related lookups.

Like previous commits the calculation of the stability index is wrapped in a
`with_ignore` node to avoid regressing the current tests, and otherwise this
commit also introduces #44232 but somewhat intentionally so.
2017-09-05 07:37:58 -07:00
Alex Crichton
0182c8bbda rustc: Rename item_body query to extern_const_body
Should hopefully more accurately reflect what's happening! This commit also
removes the cache in the cstore implementation as it's already cached through
the query infrastructure.
2017-09-05 07:37:58 -07:00
Alex Crichton
7d9c98e475 rustc: Hide maybe_unused_* fields in queries
This commit makes the `maybe_unused_extern_crates` and
`maybe_unused_trait_imports` fields of `TyCtxt` private and ensures that they're
accessed with queries so the values and results can be tracked.
2017-09-05 07:37:58 -07:00
Alex Crichton
bf5550b9b2 rustc: Convert freevars to a query
This removes a public mutable (but not actually used mutably) field from the
`TyCtxt`, moving it over to a query to ensure that it's tracked over time.
2017-09-05 07:37:58 -07:00
Alex Crichton
490f34ac0c rustc: Remove CrateStore::used_crate*
This commit removes the `use_crates` and `used_crate_source` methods in favor of
a mix of queries and helper methods being used now instead.
2017-09-05 07:37:58 -07:00
Alex Crichton
0b7e0aaba5 rustc: Classify two more CrateStore methods untracked
These are only called pre-TyCtxt (e.g. lowering/resolve), so make it explicit in
the name that they're untracked and therefore unsuitable to called elsewhere.
2017-09-05 07:37:58 -07:00
Alex Crichton
88399a985a rustc: Migrate visible_parent_map to a query
Turns out it was basically already a query if you squinted hard enough!
2017-09-05 07:37:58 -07:00
Alex Crichton
84ae4b75be rustc: Migrate CrateStore::item_body to a query
This commit migrates the `item_body` method on `CrateStore` to a query instead
to enable better tracking of dependencies and whatnot.
2017-09-05 07:37:58 -07:00
Alex Crichton
953490ddfa rustc: Remove lang item methods from CrateStore
Given the previous commit, these are now trivially representable as queries!
2017-09-05 07:37:58 -07:00
Alex Crichton
a2e2aba07d rustc: Migrate lang items to a query
This commit moves the calculation of the `LanguageItems` structure into a
query rather than being calculated before the `TyCtxt` exists, with the eventual
end goal of removing some `CrateStore` methods.
2017-09-05 07:37:57 -07:00
Alex Crichton
43ae380191 rustc: Flag some CrateStore methods as "untracked"
The main use of `CrateStore` *before* the `TyCtxt` is created is during
resolution, but we want to be sure that any methods used before resolution are
not used after the `TyCtxt` is created. This commit starts moving the methods
used by resolve to all be named `{name}_untracked` where the rest of the
compiler uses just `{name}` as a query.

During this transition a number of new queries were added to account for
post-resolve usage of these methods.
2017-09-05 07:37:39 -07:00
Alex Crichton
fd61fa5aef rustc: Hide the named_region_map behind queries
This commit makes the `named_region_map` field of `GlobalCtxt` private by
encapsulating the fields behind new queries, and the new queries are also
targeted at particular `HirId` nodes instead of accessing the entire map.
2017-09-05 07:37:39 -07:00
Alex Crichton
64a70342e6 rustc: Remove a number of mutable fields in cstore
This commit started by moving methods from `CrateStore` to queries, but it ended
up necessitating some deeper refactorings to move more items in general to
queries.

Before this commit the *resolver* would walk over the AST and process foreign
modules (`extern { .. }` blocks) and collect `#[link]` annotations. It would
then also process the command line `-l` directives and such. This information
was then stored as precalculated lists in the `CrateStore` object for iterating
over later.

After this, commit, however, this pass no longer happens during resolution but
now instead happens through queries. A query for the linked libraries of a crate
will crawl the crate for `extern` blocks and then process the linkage
annotations at that time.
2017-09-05 07:37:28 -07:00
Alex Crichton
87ea0a19bf Ignore failing tests harder 2017-09-05 07:37:28 -07:00
Alex Crichton
1c7294eb54 rustc: Move implementations_of_trait to a query
While we're at it, make it two separate queries so one's for rustdoc and one's
for the compiler, hopefully being a bit more targeted.
2017-09-05 07:37:28 -07:00
Alex Crichton
4dec2a8f81 rustc: Fix a borrow mut error with debug assertions 2017-09-05 07:37:28 -07:00
Alex Crichton
4af1284053 Ignore failing incremental tests
These should hopefully get fixed with red/green, but until that time alas!
2017-09-05 07:37:27 -07:00
Alex Crichton
52b67f988d rustc: Move original_crate_name to a query 2017-09-05 07:37:27 -07:00
Alex Crichton
d6c88f4936 rustc: Move crate_hash to a query 2017-09-05 07:37:27 -07:00
Alex Crichton
ebc1fd321d rustc: Move crate_disambiguator to queries 2017-09-05 07:37:11 -07:00
Alex Crichton
2d4445f784 rustc: Move {plugin,derive}_registrar_fn to queries 2017-09-05 07:37:11 -07:00
Alex Crichton
205bc9a80a rustc: Migrate CStore::native_libraries to a query 2017-09-05 07:37:11 -07:00
Alex Crichton
98b74c580f rustc: Migrate CStore::expored_symbols to a query 2017-09-05 07:37:11 -07:00
Alex Crichton
ed6f868bf7 rustc: Move impl_defaultness to a query 2017-09-05 07:37:11 -07:00
Alex Crichton
dff0c074e4 rustc: Move a few more cstore methods to queries
This comit applies the following changes:

* Deletes the `is_allocator` query as it's no longer used
* Moves the `is_sanitizer_runtime` method to a query
* Moves the `is_profiler_runtime` method to a query
* Moves the `panic_strategy` method to a query
* Moves the `is_no_builtins` method to a query
* Deletes the cstore method of `is_compiler_builtins`. The query was added in
  #42588 but the `CrateStore` method was not deleted

A good bit of these methods were used late in linking during trans so a new
dedicated structure was created to ship a calculated form of this information
over to the linker rather than having to ship the whole of `TyCtxt` over to
linking.
2017-09-05 07:37:11 -07:00
Felix S. Klock II
f2892ad281 Emit EndRegion statements when given -Z mir-emit-validate=N (for N > 0).
This way the miri test suite does not have to be updated to explcitly
request `-Z emit-end-regions`.
2017-09-05 15:28:08 +02:00
Felix S. Klock II
c11f3e36c8 Update regression test to explicit enable EndRegion emission. 2017-09-05 15:19:55 +02:00
Felix S. Klock II
8da717daa4 Update mir-opt/end_region_*.rs tests to explicit enable EndRegion emission. 2017-09-05 15:19:55 +02:00
Felix S. Klock II
f1c721caa7 Skip EndRegion emission by default. Use -Z emit-end-regions to reenable it.
The main intent is to fix cases where EndRegion emission is believed
to be causing excess peak memory pressure.

It may also be a welcome change to people inspecting the MIR output
who find the EndRegions to be a distraction.
2017-09-05 15:19:55 +02:00
Ariel Ben-Yehuda
d14ed92f6b Avoid hashing when creating a DepNode from a HirId
Instead, combine the already-present DefPathHash with the 32-bit
ItemLocalIndex.

Should fix #44323.
2017-09-05 15:19:07 +03:00
Wonwoo Choi
258ec30116 Expect pipe symbol after closure parameter lists 2017-09-05 18:25:42 +09:00
bors
2f1ef9ef11 Auto merge of #44308 - eddyb:local-index, r=arielb1
[MIR] Restrict ProjectionElem::Index and Storage{Live,Dead} to Local.

(see #44285)

r? @nikomatsakis
2017-09-05 04:56:03 +00:00