Commit Graph

103679 Commits

Author SHA1 Message Date
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
Yuki Okushi
3b878aa9ae
Rollup merge of #66974 - cuviper:not-isCI, r=alexcrichton
[CI] fix the `! isCI` check in src/ci/run.sh

Using `if [ ! isCI ] || ...` doesn't run any command, just tests `isCI`
as a string, whereas `if ! isCI || ...` will actually run the `isCI`
command and negate its exit status.
2019-12-06 15:37:04 +09:00
Yuki Okushi
c31773cece
Rollup merge of #66900 - GuillaumeGomez:clean-up-err-codes, r=Dylan-DPC
Clean up error codes

r? @Dylan-DPC
2019-12-06 15:37:03 +09:00
Yuki Okushi
3d2cb55734
Rollup merge of #66764 - estebank:reword-bad-collect, r=alexcrichton
Tweak wording of `collect()` on bad target type

Fix #60440.
2019-12-06 15:37:01 +09:00
Yuki Okushi
617b07e730
Rollup merge of #66649 - Wind-River:master_xyz, r=alexcrichton
VxWorks: fix issues in accessing environment variables
2019-12-06 15:36:56 +09:00
Kamlesh Kumar
f8ecf04f4b accept union inside enum if not followed by identifier 2019-12-06 10:52:28 +05:30
Adam Perry
cc574be985 #[track_caller] suppresses MIR inlining. 2019-12-05 21:12:34 -08:00
Adam Perry
28b2257160 Error message no longer implies #[track_caller] is a requirement for Rust ABI. 2019-12-05 21:11:46 -08:00
Adam Perry
eb679c9c5d Add test for Location::caller in a macro. 2019-12-05 21:08:43 -08:00
Adam Perry
bc6e66eb3a Implement core::panic::Location::caller using #[track_caller]. 2019-12-05 21:08:35 -08:00
Adam Perry
ebaebd987f Remove #[track_caller] from incomplete features list. 2019-12-05 21:08:13 -08:00
Adam Perry
207f520827 Pass a location to #[track_caller] functions in codegen_call_terminator. 2019-12-05 21:03:27 -08:00
Adam Perry
fa6bb39855 Add caller_location paramter to FnAbi::new_internal.
We pass it in `of_instance` when the instance requires caller location.
2019-12-05 21:03:14 -08:00
Adam Perry
4773ded15b Generate &core::panic::Location type in a single place. 2019-12-05 21:02:56 -08:00
Adam Perry
f1d942b371 Add field to FunctionCx for passing caller location. 2019-12-05 20:56:57 -08:00
Adam Perry
d47043b1c9 Add failing test for codegen'd track_caller attribute. 2019-12-05 20:54:28 -08:00
Adam Perry
de44f09cc3 Rename test filename to match others. 2019-12-05 20:54:03 -08:00
Adam Perry
9ab065dcda Implement #[track_caller] in const. 2019-12-05 20:50:26 -08:00
bors
7b482cdf7c Auto merge of #66835 - AviKozokin:master, r=alexcrichton
std:win: avoid WSA_FLAG_NO_INHERIT flag and don't use SetHandleInformation on UWP

This flag is not supported on Windows 7 before SP1, and on windows server 2008 SP2. This breaks Socket creation & duplication.
This was fixed in a previous PR. cc #26658

This PR: cc #60260 reuses this flag to support UWP, and makes an attempt to handle the potential error.
This version still fails to create a socket, as the error returned by WSA on this case is WSAEINVAL (invalid argument). and not WSAEPROTOTYPE.

MSDN page for WSASocketW (that states the platform support for WSA_FLAG_NO_HANDLE_INHERIT): https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketw

CC #26543
CC #26518
2019-12-06 04:30:51 +00:00