Commit Graph

68161 Commits

Author SHA1 Message Date
bors
0006d3e01c Auto merge of #44263 - durka:stabilize-discriminant, r=dtolnay
stabilize mem::discriminant (closes #24263)
2017-09-03 21:32:29 +00:00
Zaki Manian
3333262f05 Minor documentation improvements for StmtKind 2017-09-03 12:27:31 -07:00
bors
981ce7d8dd Auto merge of #44261 - alexcrichton:u128-ffi-unsafe, r=eddyb
rustc: Flag {i,u}128 as unsafe for FFI

These don't appear to have a stable ABI as noted in #41799 and the work in
compiler-builtins definitely seems to be confirming it!
2017-09-03 18:57:21 +00:00
Eduard-Mihai Burtescu
2f42cd8489 rustc_mir: use Local in ProjectionElem::Index. 2017-09-03 21:55:41 +03:00
Jeroen Bollen
a312b47698 Marked Entry::replace as unstable. 2017-09-03 20:16:20 +02:00
Eh2406
9a547fc7c4 get ci green 2017-09-03 13:07:47 -04:00
bors
c8642daf93 Auto merge of #44191 - arielb1:on-unimplemented-label, r=nikomatsakis
More general `on_unimplemented`, with uses in `Try`

Allow `on_unimplemented` directives to specify both the label and the primary message of the trait error, and allow them to be controlled by flags - currently only to be desugaring-sensitive.

e.g.
```Rust
#[rustc_on_unimplemented(
    on(all(direct, from_desugaring="?"),
        message="the `?` operator can only be used in a \
        function that returns `Result` \
        (or another type that implements `{Try}`)",
        label="cannot use the `?` operator in a function that returns `{Self}`"),
)]
```

r? @nikomatsakis
2017-09-03 16:25:46 +00:00
Eduard-Mihai Burtescu
c911925243 rustc_mir: implement visit_local instead/along visit_lvalue where possible. 2017-09-03 19:14:31 +03:00
Eh2406
f65bb2a051 Manuall rebase of @Migi pull/41336 2017-09-03 09:12:22 -04:00
bors
2f2b8b34c2 Auto merge of #44253 - eddyb:nice-scope, r=nikomatsakis
rustc: rename CodeExtent to Scope and RegionMaps to ScopeTree.

r? @nikomatsakis
2017-09-03 12:46:14 +00:00
Guillaume Gomez
ebc195d292 Add precision for rustdoc block codes 2017-09-03 13:15:16 +02:00
Guillaume Gomez
2ffcfeb821 Add compile_fail documentation 2017-09-03 13:15:15 +02:00
Ariel Ben-Yehuda
291b4eddce add error message for the other case too 2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
efa09ea554 on_unimplemented: add method-name checks and use them in Try 2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
6dec953c5a address review comments 2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
02b3ae63e2 enable desugaring-sensitive error messages and use them in Try
Maybe I should allow error messages to check the *specific* desugaring?
Thanks @huntiep for the idea!
2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
6866aea5af implement improved on_unimplemented directives 2017-09-03 13:10:54 +03:00
Ariel Ben-Yehuda
cf07ebd2a2 move the on_unimplemented logic to its own file 2017-09-03 13:10:53 +03:00
Ariel Ben-Yehuda
243aa12d6e refactor and centralize on_unimplemented parsing 2017-09-03 13:10:53 +03:00
Ulrik Sverdrup
758a0ce934 alloc: Implement downcast Rc<Any> -> Rc<T>
Implement downcast the like it exists for Box.

The implementation avoids using into_raw/from_raw, because the pointer
arithmetic which should cancel does not seem to optimize out at the
moment.

Since Rc<T> is never Send, only Rc<Any> and not Rc<Any + Send>
implements downcast.
2017-09-03 11:32:46 +02:00
bors
23ade23cbc Auto merge of #44252 - eddyb:what-is-dead-may-never-die, r=nikomatsakis
Better StorageLive / StorageDead placement for constants.

Fixes problems in miri (see https://github.com/solson/miri/pull/324#issuecomment-326555552) caused by the new scope rules in #43932.
What I've tried to do here is always have a `StorageLive` but no `StorageDead` for `'static` slots.
It might not work perfectly in all cases, but it should unblock miri.

r? @nikomatsakis cc @oli-obk
2017-09-03 08:40:11 +00:00
bjorn3
0a2c95b6eb Fix test 2017-09-03 10:23:00 +02:00
bors
fc54bf949d Auto merge of #44195 - alexcrichton:remove-used-unsafe, r=nikomatsakis
rustc: Remove the `used_unsafe` field on TyCtxt

Now that lint levels are available for the entire compilation, this can be an
entirely local lint in `effect.rs`

cc #44137
2017-09-03 03:24:59 +00:00
bors
5e9431a6f5 Auto merge of #44176 - nrc:update-rls, r=alexcrichton
Update rls

And expose the `CFG_VERSION` env var to tools so they can determine the version of Rust.

This gets the RLS back on master and so completes the PR dance for the generators PR.

r? @alexcrichton
2017-09-03 00:51:47 +00:00
bors
6f667301e2 Auto merge of #44108 - mattico:match-pipe, r=petrochenkov
Implement RFC 1925

cc #44101
2017-09-02 22:22:54 +00:00
Jeroen Bollen
e9f01bcf68 Added a way to retrieve the key out of a HashMap when it's being replaced. 2017-09-03 00:19:56 +02:00
MarkMcCaskey
570ae39973 Merge branch 'master' of git://github.com/rust-lang/rust 2017-09-02 17:01:34 -04:00
Ralf Jung
12d84cc009 update gcc crate
Use gcc::Build rather than deprecated gcc::Config.
Fixes #43973
2017-09-02 21:51:18 +02:00
bors
744dd6c1d5 Auto merge of #44066 - cuviper:powerpc64-extern-abi, r=alexcrichton
powerpc64: improve extern struct ABI

These fixes all have to do with the 64-bit PowerPC ELF ABI for big-endian
targets.  The ELF v2 ABI for powerpc64le already worked well.

- Return after marking return aggregates indirect. Fixes #42757.
- Pass one-member float aggregates as direct argument values.
- Aggregate arguments less than 64-bit must be written in the least-
  significant bits of the parameter space.
- Larger aggregates are instead padded at the tail.
  (i.e. filling MSBs, padding the remaining LSBs.)

New tests were also added for the single-float aggregate, and a 3-byte
aggregate to check that it's filled into LSBs.  Overall, at least these
formerly-failing tests now pass on powerpc64:

- run-make/extern-fn-struct-passing-abi
- run-make/extern-fn-with-packed-struct
- run-pass/extern-pass-TwoU16s.rs
- run-pass/extern-pass-TwoU8s.rs
- run-pass/struct-return.rs
2017-09-02 19:46:51 +00:00
Matt Ickstadt
f2250c4b01 Add test for #33185
Closes #33185
2017-09-02 13:01:34 -05:00
Matt Ickstadt
ad5fc2a313 Add test for #35676
Closes #35676
2017-09-02 12:45:15 -05:00
bors
204c0a47e7 Auto merge of #43886 - oli-obk:clippy, r=nrc
Add clippy as a submodule

~~This builds clippy as part of `./x.py build` (locally and in CI).~~

This allows building clippy with `./x.py build src/tools/clippy`

~~Needs https://github.com/nrc/dev-tools-team/issues/18#issuecomment-322456461 to be resolved before it can be merged.~~ Contributers can simply open a PR to clippy and point the submodule at the `pull/$pr_number/head` branch.

This does **not** build clippy or test the clippy test suite at all as per https://github.com/nrc/dev-tools-team/issues/18#issuecomment-321411418

r? @nrc

cc @Manishearth @llogiq @mcarton @alexcrichton
2017-09-02 17:17:14 +00:00
bjorn3
30603eee57
Fix tidy error 2017-09-02 18:14:14 +02:00
bjorn3
8b71e0bbd5
Better trace-macro and less span_err_fatal 2017-09-02 18:13:25 +02:00
Evgeniy A. Dushistov
94a9a300d0 add test for not optimized pow with constant power
Closes #34947
2017-09-02 19:10:00 +03:00
bjorn3
8bb7dba9c7
Dont abort on first macro error 2017-09-02 17:21:13 +02:00
kennytm
4d06185688
Remove invalid doctest from bootstrap.py.
Make sure that if the test is failed, the CI will stop the build.
2017-09-02 22:11:25 +08:00
bors
8d83c1516c Auto merge of #44259 - Mark-Simulacrum:update-cargo, r=alexcrichton
Update cargo

This includes https://github.com/rust-lang/cargo/pull/4447 which fixes a bug in Cargo that is needed to fix https://github.com/rust-lang/rust/issues/44237.

r? @alexcrichton
2017-09-02 13:43:53 +00:00
Niko Matsakis
80447c38aa limit and clear cache obligations opportunistically
Keep **all** the obligations for every projection is wasteful of
memory and compilation time. We only really care about those
subobligations that may inform the result of the projection (i.e., may
help to resolve any inference variables that appear within).
Therefore, we can clear the subobligations from the cache that don't
potentially affect the result of the projection. On every cache hit,
we also take the opportunity to check if the type variables have been
resolved *yet* and, if so, clear out the pending obligations.

Fixes #43613
2017-09-02 08:35:48 -04:00
Kornel
2354089ece Minor compilation fix 2017-09-02 12:14:30 +01:00
bors
cc1fc8894b Auto merge of #44256 - GuillaumeGomez:update-html-diff-rs, r=Mark-Simulacrum
Update html-diff-rs version

r? @nrc
2017-09-02 11:07:49 +00:00
bors
efceda220e Auto merge of #44104 - llogiq:lowercase-lints, r=nikomatsakis
add a lowercase suggestion to unknown_lints

I recently wrote some tests for a clippy lint, copied the (uppercase) lint name into my test file and forgot to toggle the case. This PR adds a suggestion that would have saved me 10 minutes of debugging, so it's likely a net win 🙂 . Also it adds a UI test for the `unknown_lints` lint.
2017-09-02 08:38:12 +00:00
Eduard-Mihai Burtescu
1d5c0ba75f Allow Drop types in const's too, with #![feature(drop_types_in_const)]. 2017-09-02 09:08:51 +03:00
Alex Burka
d516434981 stabilize mem::discriminant (closes #24263) 2017-09-02 01:59:54 -04:00
Alex Crichton
549dd10527 rustc: Flag {i,u}128 as unsafe for FFI
These don't appear to have a stable ABI as noted in #41799 and the work in
compiler-builtins definitely seems to be confirming it!
2017-09-01 22:32:44 -07:00
Alex Crichton
51a478c90b rustc: Separately feature gate repr(i128)
Brought up during the discussion of #35118, the support for this is still
somewhat buggy and so stabilization likely wants to be considered independently
of the type itself.
2017-09-01 22:29:49 -07:00
Mark Simulacrum
1b758fb6e3 Update cargo.
This includes https://github.com/rust-lang/cargo/pull/4447 which fixes
a bug in Cargo that is needed to fix
https://github.com/rust-lang/rust/issues/44237.
2017-09-01 21:15:47 -06:00
Josh Stone
40b14736a0 x86: return single-float aggregates in a float register
Following Clang's lead, and anecdotal evidence from the `float_one` part
of `run-make/extern-fn-struct-passing-abi`, use a floating point
register to return single-float aggregates, except on MSVC targets.
2017-09-01 18:21:29 -07:00
Josh Stone
f7c9704024 Exclude all windows-gnu from the float_one test 2017-09-01 18:21:29 -07:00
Josh Stone
afcc58abd3 Exclude x86_64-pc-windows-gnu from the float_one test 2017-09-01 18:21:29 -07:00