Commit Graph

109875 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
e60205fe52 move more logic into declare_arena! 2020-03-21 22:18:57 +01:00
Mazdak Farrokhzad
093bcf2e7a merge impl_arena_allocatable & declare_arena 2020-03-21 22:18:57 +01:00
Mazdak Farrokhzad
6aff92a7d2 move DropArena -> libarena 2020-03-21 22:18:57 +01:00
Matthias Krüger
e45fdcfa9a remove unused unit values (clippy::unused_unit) 2020-03-21 20:45:19 +01:00
Matthias Krüger
47e9775a9a make some let-if-bindings more idiomatic (clippy::useless_let_if_seq) 2020-03-21 20:45:18 +01:00
Matthias Krüger
a6692b7935 clarify when we pass () to functions (clippy::unit_arg) 2020-03-21 20:45:14 +01:00
Mark Rousskov
5f71d98f90 Deduplicate test and primary range_search definitions
This ensures that what we test is what we get for final results as well.
2020-03-21 15:21:31 -04:00
John Kåre Alsaker
0aa15d0485 Allow hir().find to return None 2020-03-21 20:12:55 +01:00
Thomas Bächler
c8140a88f6 Return NonZeroU64 from ThreadId::as_u64.
As discussed in #67939, this allows turning Option<ThreadId> into Option<NonZeroU64> which
can then be stored inside an AtomicU64.
2020-03-21 19:48:23 +01:00
Vadim Petrochenkov
e391d776e3 Add a test for out-of-line module passed through a proc macro 2020-03-21 21:40:58 +03:00
Alex Tokarev
da5d03d09e Add missing -Z unstable-options flag 2020-03-21 19:19:54 +01:00
Vadim Petrochenkov
e543e3187c resolve: Avoid "self-confirming" import resolutions in one more case 2020-03-21 20:48:37 +03:00
Dillon Amburgey
37c63edfc4 Validate git setup before accessing functionality 2020-03-21 13:17:01 -04:00
bors
38114ff16e Auto merge of #69729 - RalfJung:backtrace, r=Mark-Simulacrum
update backtrace crate

In particular this release includes https://github.com/rust-lang/backtrace-rs/pull/297 and https://github.com/rust-lang/backtrace-rs/pull/300.
2020-03-21 16:41:39 +00:00
Mark Rousskov
7b29b70d6e Add a right shift mapping
This saves less bytes - by far - and is likely not the best operator to choose.
But for now, it works -- a better choice may arise later.

Alphabetic     : 2538 bytes   (- 84 bytes)
Case_Ignorable : 1773 bytes   (- 30 bytes)
Cased          : 790 bytes    (- 18 bytes)
Cc             : 26 bytes     (-  6 bytes)
Grapheme_Extend: 1490 bytes   (- 18 bytes)
Lowercase      : 865 bytes    (- 36 bytes)
N              : 1040 bytes   (- 24 bytes)
Uppercase      : 778 bytes    (- 60 bytes)
White_Space    : 85 bytes     (-  6 bytes)
Total table sizes: 9385 bytes (-282 bytes)
2020-03-21 12:14:26 -04:00
adrian5
0b307f7a9f Tweak wording for std::io::Read::read function 2020-03-21 17:06:10 +01:00
Nixon Enraght-Moony
97aa2704ec Add explanation message for E0224 2020-03-21 15:43:12 +00:00
Waffle
e964d7180c slightly change the Iterator::map_while docs 2020-03-21 18:40:28 +03:00
Mark Rousskov
b0e121d9d5 Shrink bitset words through functional mapping
Previously, all words in the (deduplicated) bitset would be stored raw -- a full
64 bits (8 bytes). Now, those words that are equivalent to others through a
specific mapping are stored separately and "mapped" to the original when
loading; this shrinks the table sizes significantly, as each mapped word is
stored in 2 bytes (a 4x decrease from the previous).

The new encoding is also potentially non-optimal: the "mapped" byte is
frequently repeated, as in practice many mapped words use the same base word.

Currently we only support two forms of mapping: rotation and inversion. Note
that these are both guaranteed to map transitively if at all, and supporting
mappings for which this is not true may require a more interesting algorithm for
choosing the optimal pairing.

Updated sizes:

Alphabetic     : 2622 bytes     (-  414 bytes)
Case_Ignorable : 1803 bytes     (-  330 bytes)
Cased          : 808 bytes      (-  126 bytes)
Cc             : 32 bytes
Grapheme_Extend: 1508 bytes     (-  252 bytes)
Lowercase      : 901 bytes      (-   84 bytes)
N              : 1064 bytes     (-  156 bytes)
Uppercase      : 838 bytes      (-   96 bytes)
White_Space    : 91 bytes       (-    6 bytes)
Total table sizes: 9667 bytes   (-1,464 bytes)
2020-03-21 11:22:00 -04:00
Matthias Krüger
3b4c2f67ad don't redundantly repeat field names (clippy::redundant_field_names) 2020-03-21 15:56:13 +01:00
Matthias Krüger
5566a1cee4 remove redundant returns (clippy::needless_return) 2020-03-21 15:55:34 +01:00
Matthias Krüger
1dcbdbdf4f use let instead of match for matches with single bindings (clippy::match_single_binding) 2020-03-21 15:54:14 +01:00
lzutao
a39e96407a Remove CARGO_BUILD_TARGET from bootstrap.py 2020-03-21 21:54:01 +07:00
Matthias Krüger
54e103b2f9 don't convert results to options just for matching (clippy::if_let_some_result) 2020-03-21 15:24:48 +01:00
LeSeulArtichaut
cb7a2c16aa Bless tests 2020-03-21 15:03:58 +01:00
Stein Somers
d8a136fa10 Test pretty printing more and fix overzealous type substitution 2020-03-21 14:03:09 +00:00
LeSeulArtichaut
e991df82fa Only display definition on typo 2020-03-21 14:28:07 +01:00
bors
7900b2bc13 Auto merge of #70222 - Dylan-DPC:rollup-cwkv5ez, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #69497 (Don't unwind when hitting the macro expansion recursion limit)
 - #69901 (add #[rustc_layout(debug)])
 - #69910 (Avoid query type in generics)
 - #69955 (Fix abort-on-eprintln during process shutdown)
 - #70032 (put type params in front of const params in generics_of)
 - #70119 (rustc: use LocalDefId instead of DefId in TypeckTables.)

Failed merges:

r? @ghost
2020-03-21 13:26:44 +00:00
Eduard-Mihai Burtescu
14e0aad990 symbol_names: treat ReifyShim like VtableShim. 2020-03-21 14:51:58 +02:00
Guillaume Gomez
c88be65785 Improve tests display for rustdoc-js-std tester 2020-03-21 13:49:48 +01:00
Guillaume Gomez
2b4feba18f Pick the last version of the different files if there is more than one 2020-03-21 13:48:10 +01:00
Eduard-Mihai Burtescu
d9a15ccd97 rustc_typeck: move comment about inference variables to where it makes sense. 2020-03-21 14:47:33 +02:00
Eduard-Mihai Burtescu
3fd397b096 rustc: make {Closure,Generator}Substs::split as cheap as possible. 2020-03-21 14:47:33 +02:00
Guillaume Gomez
feb6635fe6 Clean up rustdoc js tester source code and move common code in one place 2020-03-21 13:39:49 +01:00
Eduard-Mihai Burtescu
10f08abd2e rustc: keep upvars tupled in {Closure,Generator}Substs. 2020-03-21 14:23:50 +02:00
Bastian Kauschke
a9c2378b7d fix type of const params in associated types. 2020-03-21 13:22:26 +01:00
Dylan DPC
f1ab750083 Rollup merge of #70119 - eddyb:typeck-tables-local-def-id, r=petrochenkov
rustc: use LocalDefId instead of DefId in TypeckTables.

The logic in `TypeckTables`' implementation of `HashStable`, which created `DefId`s by combining a `CrateNum` from a `DefId` and a `DefIndex` from a `LocalDefId`, bothered me a bit.

I don't know how much this matters, but it works so might as well submit it.
2020-03-21 13:06:42 +01:00
Dylan DPC
266801d806 Rollup merge of #70032 - lcnr:issue69970, r=varkor
put type params in front of const params in generics_of

fixes #69970

r? @varkor
2020-03-21 13:06:40 +01:00
Dylan DPC
276b54e9c9 Rollup merge of #69955 - alexcrichton:stderr-infallible, r=sfackler
Fix abort-on-eprintln during process shutdown

This commit fixes an issue where if `eprintln!` is used in a TLS
destructor it can accidentally cause the process to abort. TLS
destructors are executed after `main` returns on the main thread, and at
this point we've also deinitialized global `Lazy` values like those
which store the `Stderr` and `Stdout` internals. This means that despite
handling TLS not being accessible in `eprintln!`, we will fail due to
not being able to call `stderr()`. This means that we'll double-panic
quickly because panicking also attempt to write to stderr.

The fix here is to reimplement the global stderr handle to avoid the
need for destruction. This avoids the need for `Lazy` as well as the
hidden panic inside of the `stderr` function.

Overall this should improve the robustness of printing errors and/or
panics in weird situations, since the `stderr` accessor should be
infallible in more situations.
2020-03-21 13:06:38 +01:00
Dylan DPC
8deeac153f Rollup merge of #69910 - cjgillot:polym, r=Zoxc
Avoid query type in generics

There are at the moment roughly 170 queries in librustc.
The way ty::query is structured, a lot of code is duplicated for each query.
I suspect this to be responsible for a part of librustc'c compile time.

This PR reduces the amount of code generic on the query,
replacing it by code generic on the key-value types.

This is split out of #69808,
and should not contain the perf regression.

cc #65031
2020-03-21 13:06:36 +01:00
Dylan DPC
fd3f9176c3 Rollup merge of #69901 - RalfJung:rustc_layout, r=eddyb
add #[rustc_layout(debug)]

@eddyb recently told me about the `#[rustc_layout]` attribute, and I think it would be very useful if it could be used to print all the layout information Rust has about a type. When working with layouts (e.g. in Miri), it is often not clear how certain surface language features get represented internally. I have some awful hacks locally to be able to dump this debug information; with this attribute I could get it on the playground which is so much better. :)
2020-03-21 13:06:35 +01:00
Dylan DPC
a6596f2a4d Rollup merge of #69497 - Zoxc:ast-fragment-error, r=petrochenkov
Don't unwind when hitting the macro expansion recursion limit

This removes one use of `FatalError.raise()`.

r? @petrochenkov
2020-03-21 13:06:33 +01:00
Wesley Wiser
96bbd1ccb6 Rename cast_from_int to cast_from_int_like 2020-03-21 07:02:12 -04:00
Wesley Wiser
2fa550b85d Fix ICE caused by truncating a negative ZST enum discriminant 2020-03-21 07:02:12 -04:00
Marti Raudsepp
1d004bddee Fix deprecated Error.description() usage in docs 2020-03-21 12:33:52 +02:00
Ralf Jung
e548df7e36 normalize away preferred alignment 2020-03-21 10:07:44 +01:00
Mazdak Farrokhzad
4d30b92e3e recover on for<'a> |...| body closures. 2020-03-21 09:54:03 +01:00
Vadim Petrochenkov
13dd9aff64 ast: Compress AttrId from usize to u32
Also stop encoding/decoding it entirely
2020-03-21 11:29:07 +03:00
Eduard-Mihai Burtescu
78c178bcda traits/fulfill: add a couple FIXME comments about potential optimizations. 2020-03-21 09:57:35 +02:00
Eduard-Mihai Burtescu
40f73e74d3 traits/fulfill: allow stalled_on to track ty::Const::Infer(_) (unused yet). 2020-03-21 09:57:35 +02:00