Commit Graph

53471 Commits

Author SHA1 Message Date
Niko Matsakis
b01919a144 allow retracing paths across crates
For external crates, we must build up a map that goes from
the DefKey to the DefIndex. We do this by iterating over each
index that is found in the metadata and loading the associated
DefKey.
2016-05-18 10:11:36 -04:00
Niko Matsakis
303fdc17f6 cleanup dep-graph debugging code
Create some re-usable filtering subroutines.
2016-05-18 10:11:36 -04:00
Niko Matsakis
0082fc0ad4 change svh to store a u64
We used to store a u64 converted to a String for some reason. Now we
don't.
2016-05-18 10:11:35 -04:00
Niko Matsakis
08837d2975 pass revision and incr_comp directory to auxbuild
This is needed for incremental compilation harness to support
cross-crate testing. Also support cfg for typechecking prettyprint
2016-05-18 10:11:35 -04:00
Niko Matsakis
8f3a8c24cd always encode variant fields
we need them to be able to retrace.
2016-05-18 10:11:35 -04:00
Niko Matsakis
c7840cfe14 make the filename computation take a cratenum 2016-05-18 10:11:35 -04:00
Niko Matsakis
f89041bbe3 identify inputs of MetaData(X) nodes
Generate a second hash file that contains the metadata for an X node.
2016-05-18 10:11:35 -04:00
Niko Matsakis
bc02a54d12 rename the dep-graph file to include crate ident
This way, multiple compilations can share the same work directory.
2016-05-18 10:11:35 -04:00
Niko Matsakis
ef902a211b when encoding, push MetaData(foo) task on stack
This lets us determine what was used to construct the metadata.

Conflicts:
	src/librustc_metadata/encoder.rs
2016-05-18 10:11:35 -04:00
Niko Matsakis
5bcdf4c192 add a MetaData node and trigger reads from it
Conflicts:
	src/librustc_metadata/csearch.rs
2016-05-18 10:11:35 -04:00
Niko Matsakis
7734308f89 ignore dep-graph in resolve and lower_crate
This got removed at some point, it seems.
2016-05-18 10:11:35 -04:00
Niko Matsakis
b711734a5f thread the DepGraph to session/crate-store
This is a [breaking-change] for plugin authors.
You must now create a dep-graph earlier.
2016-05-18 10:10:45 -04:00
Niko Matsakis
2237e89908 remove the Any bound from CrateStore
This is a [breaking-change] for plugins, which
ought by now to have stopped relying on downcasting.
2016-05-18 10:10:45 -04:00
Niko Matsakis
47af3f1935 add MetaData DepNode variant 2016-05-18 10:10:45 -04:00
Seo Sanghyeon
cdbf01570f Remove unnecessary parens in macro 2016-05-18 22:24:33 +09:00
Seo Sanghyeon
bc4c67dd0a Fix code suggestion in test 2016-05-18 22:22:32 +09:00
Jonathan Turner
b0a317dc6f Fix tidy error 2016-05-18 08:30:46 -04:00
bors
9743c661b0 Auto merge of #33710 - Manishearth:rollup, r=Manishearth
Rollup of 5 pull requests

- Successful merges: #33656, #33666, #33673, #33675, #33695
- Failed merges:
2016-05-18 05:04:26 -07:00
Jeffrey Seyfried
f630419351 Fix bug in macro expression spans 2016-05-18 11:46:08 +00:00
ggomez
afd4cccd62 Add new error code tests 2016-05-18 12:05:59 +02:00
Manish Goregaokar
07194a0350 Rollup merge of #33695 - nikomatsakis:spezializes-cache, r=aturon
introduce a specializes cache

This query is frequently used during trait selection and caching the
result can be a reasonable performance win.

The one case I examined thus far was the mrusty package (v0.5.1), where I saw an improvement in "typeck item bodies" from ~8.3s to ~1.9s.

r? @aturon
2016-05-18 14:07:46 +05:30
Manish Goregaokar
9246cc41a6 Rollup merge of #33675 - apasel422:issue-33662, r=pnkfelix
Add missing code fence to `diagnostics.rs`

Closes #33662
2016-05-18 14:07:45 +05:30
Manish Goregaokar
f91360f24e Rollup merge of #33673 - GuillaumeGomez:fix-selected-item-style, r=steveklabnik
Fix selected item background style

r? @steveklabnik
2016-05-18 14:07:45 +05:30
Manish Goregaokar
83429f9e31 Rollup merge of #33666 - xen0n:no-more-nest-levels, r=nikomatsakis
syntax_ext: format: nest_level's are no more

Just noticed this while working on #33642 and here's a quick fix, shouldn't touch anything else. It's some historic code indeed...
2016-05-18 14:07:45 +05:30
Manish Goregaokar
7a759d7ab6 Rollup merge of #33656 - GuillaumeGomez:lifetime_bound, r=steveklabnik
Add lifetime's bounds in doc generation

Fixes #33653

![screenshot from 2016-05-15 15 30 38](https://cloud.githubusercontent.com/assets/3050060/15274445/024dbd5c-1ab2-11e6-9387-274301a05627.png)

r? @steveklabnik
2016-05-18 14:07:44 +05:30
bors
310d8996f4 Auto merge of #33654 - petrochenkov:hirident, r=nrc
Remove hir::Ident

Now when name resolution is done on AST, `hir::Ident` is no longer necessary.
See https://github.com/rust-lang/rust/pull/30145 for more details.

r? @nrc
2016-05-18 00:27:49 -07:00
Nick Hamann
7fef162873 Only print parameters with elided lifetimes in elision error messages.
When displaying the function parameters for a lifetime elision error message,
this changes it to first filter out the parameters that don't have elided
lifetimes.

Fixes #30255.
2016-05-18 01:50:21 -05:00
Timothy McRoy
acfe199c02 Add descriptive error explanation for E0502 2016-05-17 21:13:02 -05:00
bors
75e23e1b03 Auto merge of #33137 - nikomatsakis:issue-32330-lbr-in-return-type-warning-2, r=aturon
Warnings for issue #32330

This is an extension of the previous PR that issues warnings in more situations than before. It does not handle *all* cases of #32330 but I believe it issues warnings for all cases I've seen in practice.

Before merging I'd like to address:

- open a good issue explaining the problem and how to fix it (I have a [draft writeup][])
- work on the error message, which I think is not as clear as it could/should be (suggestions welcome)

r? @aturon

[draft writeup]: https://gist.github.com/nikomatsakis/631ec8b4af9a18b5d062d9d9b7d3d967
2016-05-17 18:10:53 -07:00
Niko Matsakis
639890d92d fix stale method names 2016-05-17 20:25:18 -04:00
Niko Matsakis
ccfb74e800 warn for where/return-types that reference regions
This is a step towards fixing #32330. The full fix would be a breaking
change, so we begin by issuing warnings for scenarios that will break.
2016-05-17 20:25:18 -04:00
User
59e5a5c322 Resolved rustdoc crash (#33678) by aborting instead of unwrapping.
Removed Option use and comment to match.
2016-05-18 03:38:45 +04:30
Alex Crichton
c22a45be58 std: Update libc submodule
Brings in a fix where `-lutil` is no longer passed for musl targets, lifting the
need for a musl toolchain to be installed again.

Closes #33608
2016-05-17 14:59:06 -07:00
Nick Hamann
e2bf1f8533 Add regression tests for error message when using enum variant as a type
I'm guessing these were actually fixed with PR #27085.

Closes #21225
Closes #19197
2016-05-17 15:33:31 -05:00
Niko Matsakis
97ca8d799c fix -Z treat-err-as-bug 2016-05-17 16:27:23 -04:00
Niko Matsakis
df5c62bed2 refactor: use select inside of a probe
We ought not to be affecting inference state when assembling candidates,
so invoke select inside of a probe.
2016-05-17 16:27:23 -04:00
bors
0667ae93fb Auto merge of #33665 - golddranks:thread-park-add-big-picture-explanation, r=aturon
Added a big-picture explanation for thread::park() & co.

As I said in https://www.reddit.com/r/rust/comments/4ihvv1/hey_rust_programmers_got_a_question_ask_here/d372s4i, the current explanation of the `park()` and `unpark()` is a bit unclear. It says that they're used for blocking, but then it goes on explaining the semantics in detail, leaving the bigger picture a bit unclear.

I added a short high-level explanation that explains how the functions are used. I also exposed the full paths (`thread::park()` and `thread::Thread::unpark()`), because `unpark()`, being a method, is not directly visible at the module level.
2016-05-17 13:11:57 -07:00
Niko Matsakis
29dad1a280 introduce a specializes cache
This query is frequently used during trait selection and caching the
result can be a reasonable performance win.
2016-05-17 15:52:03 -04:00
Jonathan Turner
c1c1ad5ec5 Fix for #33559 2016-05-17 11:27:58 -04:00
bors
30422de32d Auto merge of #33682 - GuillaumeGomez:fix-error-explanation-enum, r=sanxiyn
Fix invalid enum declaration

r? @steveklabnik
cc @Ms2ger
2016-05-17 07:53:49 -07:00
Guillaume Gomez
6e1154dc9d Fix invalid enum declaration 2016-05-17 13:43:23 +02:00
Seo Sanghyeon
0f257df31a Preserve span when lowering ExprKind::Paren 2016-05-17 20:37:07 +09:00
bors
5d12502d3a Auto merge of #33617 - sanmai-NL:gitignore_IntelliJ, r=nikomatsakis
IntelliJ support, ordering, cleanup
2016-05-17 04:02:15 -07:00
Jonathan Turner
175ecfefd5 Improve a few errors and fix #33366 2016-05-17 06:46:08 -04:00
Jonathan Turner
3e9747af49 De-emph minimized spans, add better debugging output 2016-05-17 06:46:08 -04:00
Jonathan Turner
ae1e73affe Print secondary labels as notes in old skool mode 2016-05-17 06:46:08 -04:00
bors
5743564f2d Auto merge of #33651 - Nercury:update-i686-android-target-to-match-abi, r=alexcrichton
Update i686-linux-android features to match android x86 ABI.

Based on [android's official x86 ABI info](http://developer.android.com/ndk/guides/abis.html#x86), the x86 baseline CPU can be safely updated to `pentiumpro`, with the addition of `MMX`, `SSE`, `SSE2`, `SSE3`, `SSSE3` features.

r? @alexcrichton
2016-05-16 22:35:00 -07:00
bors
786b26d7b4 Auto merge of #33491 - arielb1:obligation-jungle, r=nikomatsakis
Replace the obligation forest with a graph

In the presence of caching, arbitrary nodes in the obligation forest can be merged, which makes it a general graph. Handle it as such, using cycle-detection algorithms in the processing.

I should do performance measurements sometime.

This was pretty much written as a proof-of-concept. Please help me write this in a less-ugly way. I should also add comments explaining what is going on.

r? @nikomatsakis
2016-05-16 18:39:59 -07:00
Huon Wilson
eb67f492de Deprecate {f32,f64}::abs_sub.
The abs_sub name is misleading: the function actually computes the
positive difference (`fdim` in C), not the `(x - y).abs()` that *many* people expect
from the name.

This function can be replaced with just `(x - y).max(0.0)`, mirroring
the `abs` version, but this behaves differently with NAN: `NAN.max(0.0)
== 0.0`, while `NAN.positive_diff(0.0) == NAN`. People who absolutely
need that behaviour can use the C function directly and/or talk to the libs
team (we haven't encountered a concrete use-case for this functionality).

Closes #30315.
2016-05-17 08:06:56 +10:00
bors
cd6a400175 Auto merge of #33588 - nikomatsakis:compiletest-ui, r=acrichto
add UI testing framework

This adds a framework for capturing and tracking the precise output of rustc, which allows us to check all manner of minor details with the output. It's pretty strict right now -- the output must match almost exactly -- and hence maybe a bit too strict. But I figure we can add wildcards or whatever later. There is also a script intended to make updating the references easy, though the script could make things a *bit* easier (in particular, it'd be nice if it would find the build directory for you automatically).

One thing I was wondering about is the best way to test colors. Since windows doesn't embed those in the output stream, this test framework can't test colors on windows -- so I figure we can just write tests that are ignored on windows and which pass `--color=always` or whatever to rustc.

cc @jonathandturner
r? @alexcrichton
2016-05-16 14:41:50 -07:00