Commit Graph

49652 Commits

Author SHA1 Message Date
Marc Bowes
97f9cad569 E0210: Add a warning about type aliases
E0210 explains about orphan rules and suggests using a local type as a
workaround. It wasn't obvious to me that I couldn't use a type
alias, so I added a note.
2016-01-22 22:20:36 +02:00
bors
8f36038490 Auto merge of #31087 - nikomatsakis:incr-comp-fulfillment-cache, r=arielb1
This is a fix for #30741. It simplifies dep-graph tracking for trait matching. I was experimenting with having a greater resolution here, but decided to pare back to just have one dep node for "trait resolutions on trait `Foo`", which means that adding an impl to the trait `Foo` will invalidate all fns that had to do any trait matching at all on `Foo`. This seems like a reasonable starting place.

Independently, I realized I had neglected to record a dependency from trans on typeck -- this is obviously needed, since trans consumes a bunch of data structures that typeck produces (but which are not currently individually tracked) -- and because trans assumes that typeck has been done. Eventually those are going to go away and be replaced with MIR, which will be tracked, so this edge would presumably be derived automatically then, but it's an obvious enough thing to want for now.

r? @arielb1

cc @michaelwoerister -- this might indirectly fix the problem you observed with the trans cache, though it'd be nice to try and craft an independent test case for that.
2016-01-22 17:09:37 +00:00
bors
e1cb0a3508 Auto merge of #31084 - ranma42:cmd-no-unsafe, r=alexcrichton
Instead of transmuting, use a match; the compiler has learnt how to
optimize it.
2016-01-22 15:18:10 +00:00
bors
188c50c4ac Auto merge of #31080 - dhuseby:updating_libc_dep, r=alexcrichton
this pulls in a fix for the missing O_ACCMODE that was breaking the bsd builds.
2016-01-22 13:27:22 +00:00
bors
e7ce7b6365 Auto merge of #31077 - nagisa:mir-temp-promotion, r=dotdash
Fixes #31002

r? @nikomatsakis
2016-01-22 11:36:50 +00:00
bors
cd1b845492 Auto merge of #31074 - gmbonnet:stage0-libdir, r=alexcrichton
This fixes #27254.

On a 64-bit Linux machine, for example, `configure --libdir=/usr/local/lib64` was creating both `x86_64-unknown-linux-gnu/stage0/lib/rustlib` and `x86_64-unknown-linux-gnu/stage0/lib64/rustlib`. Crates from the stage0 snapshot, like `libcore`, are extracted to `x86_64-unknown-linux-gnu/stage0/lib/rustlib`, but the stage0 compiler was attempting to find them in `x86_64-unknown-linux-gnu/stage0/lib64/rustlib`, which has the highest priority on a 64-bit system.

The issue can be fixed by creating only `x86_64-unknown-linux-gnu/stage0/lib/rustlib`, since this is the only rustlib directory needed for stage0 anyways.
2016-01-22 09:46:17 +00:00
bors
b4a2579cf0 Auto merge of #31072 - arielb1:method-callee-cleanup, r=michaelwoerister
The old code was terribly ugly and was duplicated in several places.

r? @michaelwoerister
2016-01-22 07:55:13 +00:00
bors
00ee90f0f0 Auto merge of #31070 - sfackler:bufreader-box-slice, r=alexcrichton
Saves a word, and also prevents the impl from accidentally changing the
buffer length.

r? @alexcrichton
2016-01-22 06:04:50 +00:00
bors
62c8256b9f Auto merge of #31068 - sfackler:bufwriter-panic, r=alexcrichton
We don't want to write the same data twice.

Closes #30888

r? @alexcrichton
2016-01-22 04:13:26 +00:00
bors
5c1d5fcd87 Auto merge of #31064 - retep998:msvc-host-dlls, r=alexcrichton
Fixes https://github.com/rust-lang/rust/issues/31063

r? @alexcrichton
2016-01-22 02:22:54 +00:00
bors
18b851bc52 Auto merge of #30944 - fhahn:issue-29789-use-constant2, r=nagisa
This PR for  #29789 uses `rustc::repr::mir::Constant` in `ExprKind::Repeat`, which seems to fit quite nicely. Is there a reason for not re-using that type?
2016-01-22 00:31:29 +00:00
bors
54475e950c Auto merge of #30882 - petrochenkov:varnamesp, r=nrc
Tuple and unit variants from other crates weren't put into type namespace.
Now variant namespacing is aligned with struct namespacing and is not affected by the variant's crate of origin (struct -> type, tuple/unit -> type/value).
Additionally, struct variants from other crates are put into value namespace (struct variants from local crate were already in it). This is not a necessity, but a future proofing measure.

This fix can result in some new shadowing errors in cross-crate scenarios, crater reports [three regressions](https://github.com/rust-lang/rust/pull/30882#issuecomment-172369883).
[breaking-change]
2016-01-21 22:41:37 +00:00
Florian Hahn
9884ff1dfb Add Debug impl and erase region for TypedConstVal 2016-01-21 22:53:00 +01:00
Florian Hahn
d31027d3bf Introduce and use TypedConstVal for Repeat 2016-01-21 22:47:11 +01:00
Florian Hahn
c78609134c [MIR] use mir::repr::Constant in ExprKind::Repeat, close #29789 2016-01-21 22:46:50 +01:00
bors
46dcffd05b Auto merge of #31052 - bluss:split-at-mut-str, r=alexcrichton
Use raw pointers to avoid aliasing in str::split_at_mut

Introduce private function  from_raw_parts_mut for str to factor out the logic.

We want to use raw pointers here instead of duplicating a &mut str, to
be on safer ground w.r.t rust aliasing rules.

This has already been fixed for slices in PR #27358, issue #27357
2016-01-21 20:51:34 +00:00
Vadim Petrochenkov
ff6b0aac6a resolve: Fix variant namespacing 2016-01-21 23:22:01 +03:00
Ariel Ben-Yehuda
0a01d0b732 add fixme 2016-01-21 22:07:15 +02:00
Andrea Canciani
2f4622a36f Remove unsafe code from core::cmp
Instead of transmuting, use a match; the compiler has learnt how to
optimize it.
2016-01-21 20:49:10 +01:00
Niko Matsakis
56c73e58a2 Indicate that trans is always dependent on typeck 2016-01-21 14:27:29 -05:00
Niko Matsakis
0bdefd7064 Revamp the fulfillment cache tracking to only cache trait-refs, which
was the major use-case, and to update the dep-graph. Other kinds of
predicates are now excluded from the cache because there is no easy way
to make a good dep-graph node for them, and because they are not
believed to be that useful. :)

Fixes #30741. (However, the test still gives wrong result for trans,
for an independent reason which is fixed in the next commit.)
2016-01-21 14:27:29 -05:00
bors
9ae76b363c Auto merge of #31028 - erickt:ast-json, r=michaelwoerister
The protocol for `serialize::{En,De}code` doesn't allow for two integers to be serialized next to each other.

Closes #31025.

cc @michaelwoerister
2016-01-21 19:01:24 +00:00
Dave Huseby
8c4fdc19cb updating the libc dependency to pull in build breaker fixes 2016-01-21 10:05:27 -08:00
bors
c6ba7fee97 Auto merge of #31043 - shahn:arc_weak, r=alexcrichton
This was accidentally introduced in
7e2ffc7090,
b44ee371b8 and
36ba96ea3c.
2016-01-21 17:11:13 +00:00
Simonas Kazlauskas
e74aa2bdff [MIR] Promote temps to alloca on multi-assignment
Fixes #31002
2016-01-21 19:01:43 +02:00
bors
340e7eb2a7 Auto merge of #31024 - oli-obk:move_checks_out_of_librustc, r=arielb1
-    check_const
-    check_static_recursion
-    check_loop
-    check_rvalues

r? @arielb1
2016-01-21 15:21:09 +00:00
Ulrik Sverdrup
ba9a3bc453 core: Use raw pointers to avoid aliasing in str::split_at_mut
Introduce private function from_raw_parts_mut for str to factor out the logic.

We want to use raw pointers here instead of duplicating a &mut str, to
be on safer ground w.r.t rust aliasing rules.
2016-01-21 15:25:49 +01:00
bors
038de0f95e Auto merge of #31057 - bluss:memrchr-fallback, r=alexcrichton
Use the fallback impl for memrchr on non-linux

The memrchr code was never used(!). This brings the memrchr improvements to
non-linux platforms (LineWriter / buffered stdout benefits).

Previous PR #30381
2016-01-21 13:31:43 +00:00
Ariel Ben-Yehuda
29c296f90b clean up trans_static_method_callee and friends 2016-01-21 14:42:09 +02:00
Guillaume Bonnet
6aa86e5cd1 configure: Do not generate two stage0 rustlib dirs when --libdir is set 2016-01-21 13:18:47 +01:00
Oliver Schneider
c124deca7b move more checks out of librustc 2016-01-21 10:52:37 +01:00
bors
34b4e66736 Auto merge of #29520 - retep998:staticlib-naming-fiasco, r=alexcrichton
I'm not sure if this was the best way to go about it, but it seems to work.

Fixes https://github.com/rust-lang/rust/issues/29508

r? @alexcrichton
2016-01-21 09:02:48 +00:00
bors
d5ec3ab685 Auto merge of #31042 - shahn:weak_annotations, r=alexcrichton
This was accidentally introduced in
7e2ffc7090.
2016-01-21 07:13:16 +00:00
Steven Fackler
b740c557e2 Use a Box<[u8]> in BufReader
Saves a word, and also prevents the impl from accidentally changing the
buffer length.
2016-01-20 22:40:25 -08:00
Steven Fackler
334bee3489 Don't flush in BufWriter destructor after a panic in write
We don't want to write the same data twice.

Closes #30888
2016-01-20 22:30:46 -08:00
bors
670f5b06e4 Auto merge of #31041 - brson:version, r=alexcrichton 2016-01-21 05:23:27 +00:00
bors
4349cdae9c Auto merge of #31037 - nrc:cached-ids, r=nikomatsakis
Blocks #30884

r? @nikomatsakis

cc @durka
2016-01-21 03:33:30 +00:00
Peter Atashian
a65f5acf5c Add host toolchain DLLs to PATH when executing link.exe
Fixes https://github.com/rust-lang/rust/issues/31063

Signed-off-by: Peter Atashian <retep998@gmail.com>
2016-01-20 21:01:56 -05:00
bors
51108b64ca Auto merge of #31010 - petrochenkov:def, r=arielb1
All structs and their constructors are defined as `DefStruct`.
`DefTy` is splitted into `DefEnum` and `DefTyAlias`.
Ad hoc flag `bool is_structure` is removed from `DefVariant`, it was required in one place in resolve and could be obtained by other means.
Flag `bool is_ctor` is removed from `DefFn`, it wasn't really used for constructors outside of metadata decoding.

Observable effects:
More specific error messages are selected in some cases.
Two name resolution bugs fixed (https://github.com/rust-lang/rust/issues/30992 and FIXME in compile-fail/empty-struct-braces-expr.rs).

Fixes https://github.com/rust-lang/rust/issues/30992
Closes https://github.com/rust-lang/rust/issues/30361
2016-01-21 01:43:18 +00:00
bors
7dce32e65d Auto merge of #30982 - KiChjang:zst-collections-tests, r=bluss
Fixes #28518.
2016-01-20 23:53:24 +00:00
bors
4bb9d453cf Auto merge of #30945 - nagisa:mir-optional-block-dest, r=nikomatsakis
As an attempt to make loop body destination be optional, author implemented a pretty self contained
change and deemed it to be (much) uglier than the alternative of just keeping the unit temporary.
Having the temporary created lazily also has a nice property of not figuring in the MIR of
functions which do not use loops of any sort.

r? @nikomatsakis
2016-01-20 22:03:33 +00:00
bors
0b77e50b41 Auto merge of #30985 - alexcrichton:downgrade-jemaloc, r=brson
We've been seeing a lot of timeouts in tests on the bots and investigation ended
pointing to jemalloc/jemalloc#315 as the culprit. Unfortunately it looks like
that doesn't seem to have a fix on the way soon, so let's temporarily downgrade
back to the previous version of jemalloc we were using (where #30434 was the
most recent upgrade)
2016-01-20 20:14:18 +00:00
Vadim Petrochenkov
2084c2c33a Rename Def's variants and don't reexport them 2016-01-20 22:31:10 +03:00
Vadim Petrochenkov
d6c9aa8901 Fix associated const resolution on structs 2016-01-20 21:50:57 +03:00
Vadim Petrochenkov
ceaaa1bc33 Refactor definitions of ADTs in rustc::middle::def 2016-01-20 21:50:57 +03:00
Erick Tryzelaar
1dc7eb8853 syntax: Fix encoding and decoding spans
The protocol for `serialize::{En,De}code` doesn't allow for two
integers to be serialized next to each other. This switches the
protocol to serializing `Span`s as a struct. rbml structs don't
have any overhead, so the metadata shouldn't increase in size,
but it allows the json format to be properly generated, albeit
slightly more heavy than when it was just serializing a span as
a u64.

Closes #31025.

s
2016-01-20 10:04:31 -08:00
Alex Crichton
884de56f71 Downgrade bundled jemalloc version
We've been seeing a lot of timeouts in tests on the bots and investigation ended
pointing to jemalloc/jemalloc#315 as the culprit. Unfortunately it looks like
that doesn't seem to have a fix on the way soon, so let's temporarily downgrade
back to the previous version of jemalloc we were using (where #30434 was the
most recent upgrade)
2016-01-20 09:38:16 -08:00
bors
292af75f8d Auto merge of #30872 - pitdicker:expand_open_options, r=alexcrichton
Tracking issue: #30014

This implements the RFC and makes a few other changes.
I have added a few extra tests, and made the Windows and
Unix code as similar as possible.

Part of the RFC mentions the unstable OpenOptionsExt trait
on Windows (see #27720). I have added a few extra methods
to future-proof it for CreateFile2.
2016-01-20 17:19:21 +00:00
Ulrik Sverdrup
078a6231a7 std: Use the fallback impl for memrchr on non-linux
This code was never used(!). This brings the memrchr improvements to
non-linux platforms (LineWriter / buffered stdout benefits).
2016-01-20 18:00:34 +01:00
Keith Yeung
aca4e6a89a Add tests for collections to work with ZSTs 2016-01-20 10:52:00 -05:00