Commit Graph

103754 Commits

Author SHA1 Message Date
Esteban Küber
0f306a7db4 Do not ICE on async fn with non-Copy infered type arg
Fix #66958.
2019-12-06 10:06:10 -08:00
Mark Mansi
03222c0371 Update rustc-guide 2019-12-06 11:26:18 -06:00
Ömer Sinan Ağacan
2404a067ee const-prop: Restrict scalar pair propagation
We now only propagate a scalar pair if the Rvalue is a tuple with two
scalars. This for example avoids propagating a (u8, u8) value when
Rvalue has type `((), u8, u8)` (see the regression test). While this is
a correct thing to do, implementation is tricky and will be done later.

Fixes #66971
Fixes #66339
Fixes #67019
2019-12-06 19:36:34 +03:00
Ralf Jung
49697ae38b get rid of __ in field names 2019-12-06 17:28:04 +01:00
Matthew Kraai
292b998c64 Change "wth" to "with" in Layout::padding_needed_for comment 2019-12-06 07:59:13 -08:00
Matthew Kraai
a3c85770fb Change "us" to "is" in Layout::for_value comment 2019-12-06 07:35:30 -08:00
bors
9630dbbc3c Auto merge of #67091 - JohnTitor:rollup-kitphze, r=JohnTitor
Rollup of 11 pull requests

Successful merges:

 - #66846 (Make try_mark_previous_green aware of cycles.)
 - #66959 (Remove potential cfgs duplicates)
 - #66988 (Fix angle bracket formatting when dumping MIR debug vars)
 - #66998 (Modified the testcases for VxWorks)
 - #67008 (rustdoc: Add test for fixed issue)
 - #67023 (SGX: Fix target linker used by bootstrap)
 - #67033 (Migrate to LLVM{Get,Set}ValueName2)
 - #67049 (Simplify {IoSlice, IoSliceMut}::advance examples and tests)
 - #67054 (codegen "unreachable" for invalid SetDiscriminant)
 - #67081 (Fix Query type docs)
 - #67085 (Remove boxed closures in address parser.)

Failed merges:

r? @ghost
2019-12-06 15:11:35 +00:00
Yuki Okushi
931be6c3bc
Rollup merge of #67085 - reitermarkus:addr-parser, r=Mark-Simulacrum
Remove boxed closures in address parser.

Simplify address parser by removing unnecessary boxed closures.

Also relevant for https://github.com/rust-lang/rfcs/pull/2832.
2019-12-07 00:10:08 +09:00
Yuki Okushi
cc7c45fdc6
Rollup merge of #67081 - osa1:fix_query_type_docs, r=Dylan-DPC
Fix Query type docs

`give` no longer exists, `compute` is used to generate query results now.
2019-12-07 00:10:07 +09:00
Yuki Okushi
c85284ec58
Rollup merge of #67054 - RalfJung:set-discriminant-unreachable, r=oli-obk
codegen "unreachable" for invalid SetDiscriminant

Follow-up from https://github.com/rust-lang/rust/pull/66960. I also realized I don't understand our policy for using `abort` vs `unreachable`. AFAIK `abort` is safe to call and just aborts the process, while `unreachable` is UB. But sometimes we use both, like here

d825e35ee8/src/librustc_codegen_ssa/mir/block.rs (L827-L828)

and here

d825e35ee8/src/librustc_codegen_ssa/mir/block.rs (L264-L265)

The second case is even more confusing because that looks like an unreachable `return` to me, so why would we codegen a safe abort there?

r? @eddyb Cc @oli-obk
2019-12-07 00:10:05 +09:00
Yuki Okushi
d1397db3f3
Rollup merge of #67049 - tmiasko:io-slice-advance, r=rkruppe
Simplify {IoSlice, IoSliceMut}::advance examples and tests

Remove unnecessary calls to `std::mem::replace` and make variables immutable.
2019-12-07 00:10:04 +09:00
Yuki Okushi
0b471bffc3
Rollup merge of #67033 - cuviper:ValueName2, r=rkruppe
Migrate to LLVM{Get,Set}ValueName2

The deprecated `LLVM{Get,Set}ValueName` only work with NUL-terminated
strings, but the `2` variants use explicit lengths, which fits better
with Rust strings and slices. We now use these in new helper functions
`llvm::{get,set}_value_name` that convert to/from `&[u8]`.

Closes #64223.
r? @rkruppe
2019-12-07 00:10:02 +09:00
Yuki Okushi
fd4cec0303
Rollup merge of #67023 - jethrogb:jb/bootstrap-target-linker, r=alexcrichton
SGX: Fix target linker used by bootstrap

Bootstrap, for some reason, overrides the target linker. This is not correct for x86_64-fortanix-unknown-sgx. Add such targets to the list of exceptions.

r? @alexcrichton
2019-12-07 00:10:00 +09:00
Yuki Okushi
0df1609215
Rollup merge of #67008 - ollie27:rustdoc_issue_61732, r=Centril
rustdoc: Add test for fixed issue

#61732 was almost certainly fixed by #63400.

Closes #61732
2019-12-07 00:09:59 +09:00
Yuki Okushi
cdbdb686f9
Rollup merge of #66998 - Wind-River:master_up, r=alexcrichton
Modified the testcases for VxWorks
2019-12-07 00:09:57 +09:00
Yuki Okushi
7249af0c7b
Rollup merge of #66988 - osa1:issue66985, r=matthewjasper
Fix angle bracket formatting when dumping MIR debug vars

Fixes #66985
2019-12-07 00:09:55 +09:00
Yuki Okushi
afd9e95b8b
Rollup merge of #66959 - GuillaumeGomez:cfg-duplicates, r=eddyb
Remove potential cfgs duplicates

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

Before going any further (the issue seems to be linked to metadata as far as I can tell). Do you think this is the good place to do it or should it be done before?

r? @eddyb
2019-12-07 00:09:54 +09:00
Yuki Okushi
2a4f638d24
Rollup merge of #66846 - gizmondo:master, r=michaelwoerister
Make try_mark_previous_green aware of cycles.

Fixes #61323

r? @michaelwoerister
2019-12-07 00:09:52 +09:00
Matthew Kraai
0c4bc58cee Change "either" to "any" in Layout::from_size_align's docs 2019-12-06 07:06:03 -08:00
varkor
f1db60ca95 Fix rebase issues 2019-12-06 13:09:03 +00:00
Simon Sapin
a213ff8299 Move numeric From and TryFrom impls to libcore/convert/num.rs
This makes `libcore/num/mod.rs` slightly smaller. It’s still 4911 lines and not easy to navigate. This doesn’t change any public API.
2019-12-06 14:00:45 +01:00
Simon Sapin
cba479f75c Add {f32,f64}::approx_unchecked_to<Int> unsafe methods
As discussed in https://github.com/rust-lang/rust/issues/10184

Currently, casting a floating point number to an integer with `as` is Undefined Behavior if the value is out of range. `-Z saturating-float-casts` fixes this soundness hole by making `as` “saturate” to the maximum or minimum value of the integer type (or zero for `NaN`), but has measurable negative performance impact in some benchmarks. There is some consensus in that thread for enabling saturation by default anyway, but provide an `unsafe fn` alternative for users who know through some other mean that their values are in range.
2019-12-06 14:01:05 +01:00
Simon Sapin
f442797c17 Make core::convert a directory-module with mod.rs 2019-12-06 13:56:25 +01:00
Markus Reiter
79f876495b Remove boxed closures in address parser. 2019-12-06 13:28:02 +01:00
varkor
442514884d Use Instant::now lazily 2019-12-06 12:24:54 +00:00
varkor
9f1269f23c Rename to then_some and then 2019-12-06 12:24:54 +00:00
varkor
8579fe6fc3 Use as_ref().map() rather than is_some().to_option() 2019-12-06 12:23:44 +00:00
varkor
6ea469712d Fix libcore tests 2019-12-06 12:23:23 +00:00
varkor
50985b012a Use to_option_with in several places 2019-12-06 12:23:23 +00:00
varkor
e3a8ea4e18 Use to_option in various places 2019-12-06 12:23:23 +00:00
varkor
51901eea8c Rename bool's then to to_option 2019-12-06 12:20:08 +00:00
Remy Rakic
1314ba323b add subset relations test using polonius
It's a relatively simple smoke-test for subset errors, executed outside
of the polonius compare-mode.
2019-12-06 11:50:02 +01:00
Remy Rakic
e2230a4366 appease the vociferous tidy 2019-12-06 11:50:02 +01:00
Remy Rakic
720716f9d0 bless polonius output due to lacking the 'static special-casing 2019-12-06 11:50:02 +01:00
Remy Rakic
695640816a bless polonius output of test ui/nll/outlives-suggestion-simple.rs
The polonius output has one more error which should be displayed
in the regular case, but error reporting in the regular case stopped
at the first error.

Admittedly it would be nice to combine suggestions for the same source
lifetime so that `'a: 'b` and `'a: 'c` are not bothsuggested, but instead
a single `'a: 'b + 'c` is.
2019-12-06 11:50:02 +01:00
Remy Rakic
67b04d5f64 bless polonius output of test hrtb-perfect-forwarding.rs
The plan is to use chalk and not have polonius deal with this.
2019-12-06 11:50:02 +01:00
Remy Rakic
02a6662e2f Implement subset errors using Polonius
- switches to using the Naive variant by default
- emits subset errors or propagates unsatisfied obligations
  to the caller
2019-12-06 11:50:02 +01:00
Remy Rakic
7a3dca69bb Polonius: emit placeholder and known_subset facts, as inputs to the subset error computation 2019-12-06 11:50:01 +01:00
Remy Rakic
4dd6292c3c UniversalRegionRelations: add a way to list the base non-transitive outlives constraints 2019-12-06 11:50:01 +01:00
Remy Rakic
4b16ae1609 Add a way to list the base non-transitive edges in TransitiveRelation 2019-12-06 11:50:01 +01:00
lqd
479cc7ae9a update to polonius 0.11 to compute subset errors
- adapt to the new polonius `FactTypes` API
- reorganize the type aliases referring to polonius to avoid referencing the inner atom or fact types multiple times: only one input and output types should be enough for everyone. They could equally be in `borrow_check` as `nll` though.
2019-12-06 11:50:01 +01:00
Alex Aktsipetrov
de255a9163 Make try_mark_previous_green aware of cycles. 2019-12-06 12:48:53 +03:00
bors
d0126e8ed3 Auto merge of #67080 - JohnTitor:rollup-2t6fm3u, r=JohnTitor
Rollup of 10 pull requests

Successful merges:

 - #66649 (VxWorks: fix issues in accessing environment variables)
 - #66764 (Tweak wording of `collect()` on bad target type)
 - #66900 (Clean up error codes)
 - #66974 ([CI] fix the `! isCI` check in src/ci/run.sh)
 - #66979 (Add long error for E0631 and update ui tests.)
 - #67017 (cleanup long error explanations)
 - #67021 (Fix docs for formatting delegations)
 - #67041 (add ExitStatusExt into prelude)
 - #67065 (Fix fetching arguments on the wasm32-wasi target)
 - #67066 (Update the revision of wasi-libc used in wasm32-wasi)

Failed merges:

r? @ghost
2019-12-06 07:43:56 +00:00
Ömer Sinan Ağacan
5ddfbc2e2b Fix Query type docs
`give` no longer exists, `compute` is used to generate query results
now.
2019-12-06 10:41:51 +03:00
Yuki Okushi
acd2b0835d
Rollup merge of #67066 - alexcrichton:update-wasi-libc, r=Mark-Simulacrum
Update the revision of wasi-libc used in wasm32-wasi

This commit updates the `wasi-libc` repository used to build the
wasm32-wasi target's libstd to ensure that both libstd and libc are
using the same wasi snapshot version.
2019-12-06 15:37:14 +09:00
Yuki Okushi
f77b8d355b
Rollup merge of #67065 - alexcrichton:update-wasi, r=sfackler
Fix fetching arguments on the wasm32-wasi target

Fixes an error introduced in #66750 where wasi executables always think
they have zero arguments because one of the vectors returned here
accidentally thought it was length 0.
2019-12-06 15:37:13 +09:00
Yuki Okushi
1bb868c5d6
Rollup merge of #67041 - Wind-River:master_base, r=alexcrichton
add ExitStatusExt into prelude

r? @alexcrichton
2019-12-06 15:37:11 +09:00
Yuki Okushi
f7c2631d4a
Rollup merge of #67021 - elichai:2019-12-fmt, r=QuietMisdreavus
Fix docs for formatting delegations

If you use the example in the docs right now it breaks all the options Formatters have to offer.
i.e. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=214392ecc6eff73b4789c32568395f72 this should've padded the output with 4 zeros but didn't.

with the new example it does work: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=3bdfb29f395230c5129c5f56dcfcb2a9

The only thing i'm not quite sure about is what's the right way to do it in a loop (altough non of the docs talk about it people are doing it in the wild and there were a couple of attempts to include in libcore)
i.e. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=4c4dca3c90ba36779ecd014f3899ab9c
2019-12-06 15:37:10 +09:00
Yuki Okushi
662a225f1d
Rollup merge of #67017 - GuillaumeGomez:long-err-explanations-2, r=Dylan-DPC
cleanup long error explanations

r? @Dylan-DPC
2019-12-06 15:37:08 +09:00
Yuki Okushi
6c0165fa78
Rollup merge of #66979 - reese:E0631-long-error, r=GuillaumeGomez
Add long error for E0631 and update ui tests.

This PR adds a long error for `E0631`, which covers errors where closure argument types are mismatched. It also updates UI tests where this error is applicable.

Part of #61137
2019-12-06 15:37:06 +09:00