Commit Graph

98336 Commits

Author SHA1 Message Date
Aleksey Kladov
fa893a3225 use TokenStream rather than &[TokenTree] for built-in macros
That way, we don't loose the jointness info
2019-09-03 21:15:45 +03:00
bors
b3146549ab Auto merge of #63991 - Centril:unique-improper-ctype, r=rkruppe
`improper_ctypes`: guard against accidental change to `Unique<T>`

r? @eddyb
2019-08-31 06:38:46 +00:00
bors
2d851b3318 Auto merge of #63975 - topecongiro:rustfmt-1.4.6, r=nikomatsakis
Update rustfmt to 1.4.6

This PR updates rustfmt to 1.4.6. [CHANGELOG](https://github.com/rust-lang/rustfmt/blob/v1.4.6/CHANGELOG.md#146-2019-08-28).
2019-08-31 01:35:10 +00:00
Mazdak Farrokhzad
960ecdce7c improper_ctypes: guard against accidental change to Unique<T>. 2019-08-31 02:42:28 +02:00
bors
fd68d023f4 Auto merge of #64026 - Centril:rollup-le667lp, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #62957 (Match the loop examples)
 - #63600 (Merge oli-obk mail addresses)
 - #63684 (Constify LinkedList new function)
 - #63847 ([rustdoc] Fix system theme detection)
 - #63999 (Add missing links on AsRef trait)
 - #64014 ( miri: detect too large dynamically sized objects )
 - #64015 (some const-eval test tweaks)

Failed merges:

r? @ghost
2019-08-30 21:31:01 +00:00
Mazdak Farrokhzad
d997596445
Rollup merge of #64015 - RalfJung:const-tests, r=oli-obk
some const-eval test tweaks

Best reviewed commit-by-commit.

r? @oli-obk
2019-08-30 23:08:07 +02:00
Mazdak Farrokhzad
1dc8b2304f
Rollup merge of #64014 - RalfJung:miri-slice, r=oli-obk
miri: detect too large dynamically sized objects

Needed to make https://github.com/rust-lang/miri/pull/929 pass.

r? @oli-obk
2019-08-30 23:08:06 +02:00
Mazdak Farrokhzad
ac71a7f7cb
Rollup merge of #63999 - GuillaumeGomez:as-ref-missing-links, r=Mark-Simulacrum
Add missing links on AsRef trait

cc @rust-lang/docs
2019-08-30 23:08:04 +02:00
Mazdak Farrokhzad
5f07ff7087
Rollup merge of #63847 - GuillaumeGomez:system-theme-detection, r=kinnison
[rustdoc] Fix system theme detection

Fixes #63830

The problem is that it returns the property "entirely" (so with the quotes in our case). Removing them fixes the issue.

cc @fenhl

r? @kinnison
2019-08-30 23:08:03 +02:00
Mazdak Farrokhzad
b76a558227
Rollup merge of #63684 - GrayJack:const_list_new, r=Centril
Constify LinkedList new function

Change the `LinkedList::new()` function to become a const fn, allowing the use in constant context.
2019-08-30 23:08:01 +02:00
Mazdak Farrokhzad
f6e43e8100
Rollup merge of #63600 - rust-lang:oli-obk-patch-1, r=Mark-Simulacrum
Merge oli-obk mail addresses
2019-08-30 23:07:59 +02:00
Mazdak Farrokhzad
c96a677c39
Rollup merge of #62957 - dns2utf8:doc_loop_keyword, r=GuillaumeGomez
Match the loop examples

The idea is to show the usefulness of the expression side by side.
2019-08-30 23:07:57 +02:00
bors
4295eea903 Auto merge of #63982 - sam09:fix-63976, r=estebank
When accessing private field of union, do not misidentify it as a struct

Fix incorrect error message when accessing private field of union.

Fixes #63976.
2019-08-30 17:54:55 +00:00
bors
ecca4b8c4b Auto merge of #64018 - flip1995:clippyup, r=oli-obk
Update Clippy

cc rust-lang/rust-clippy#4475

r? @oli-obk
2019-08-30 13:56:35 +00:00
Ralf Jung
bb3474994b add test 2019-08-30 15:04:12 +02:00
bors
0f41401691 Auto merge of #63827 - andjo403:out-of-process-rustc-in-rustdoc, r=Mark-Simulacrum
Run doctests via out-of-process rustc

closes #63638
2019-08-30 10:25:26 +00:00
flip1995
4240168eda
Update Clippy 2019-08-30 11:31:36 +02:00
Ralf Jung
6d86163ffb const-eval tests: make all unions repr(C) 2019-08-30 09:35:33 +02:00
Ralf Jung
e7fed140a4 explain why REF_AS_USIZE is important 2019-08-30 09:35:33 +02:00
Ralf Jung
cf574091fb tweak const-valid test 2019-08-30 09:35:33 +02:00
Ralf Jung
38f6b96aae make unions repr(C) 2019-08-30 09:30:07 +02:00
bors
19a38de68a Auto merge of #63402 - estebank:strip-margin, r=oli-obk
Strip code to the left and right in diagnostics for long lines

Fix #62999.
2019-08-30 06:49:15 +00:00
Ralf Jung
d75723e9fe mod-level doc comment for validity check 2019-08-30 08:37:02 +02:00
Ralf Jung
235ee34a15 better variable names 2019-08-30 07:44:54 +02:00
Ralf Jung
0f3e596c1d miri: detect too large dynamically sized objects 2019-08-30 07:44:51 +02:00
bors
c7d4df0fcf Auto merge of #60966 - oli-obk:diagnostic_items, r=eddyb
Add a "diagnostic item" scheme for lints referring to libstd items

fixes https://github.com/rust-lang/rust/issues/39131

r? @Manishearth @rust-lang/wg-diagnostics
2019-08-30 03:09:39 +00:00
Oliver Scherer
6978b9482b Update tests 2019-08-30 02:46:25 +02:00
Oliver Scherer
26e9990198 Add a "diagnostic item" scheme
This allows lints and other diagnostics to refer to items
by a unique ID instead of relying on whacky path
resolution schemes that may break when items are
relocated.
2019-08-30 01:00:55 +02:00
Oliver Scherer
c6e7f039aa Merge oli-obk mail addresses 2019-08-30 00:30:50 +02:00
Andreas Jonson
b304cd02c0 Run doctests via out-of-process rustc 2019-08-29 23:15:31 +02:00
Andreas Jonson
56ab485fbe support rustdoc test from stdin to rustc 2019-08-29 22:23:05 +02:00
Sam Radhakrishan
378c32bc90 Fix test. 2019-08-30 00:57:20 +05:30
bors
72b2abfd65 Auto merge of #63971 - flip1995:clippyup, r=oli-obk
Update Clippy

cc rust-lang/rust-clippy#4462

r? @oli-obk @Manishearth
2019-08-29 18:52:09 +00:00
bors
fbdf1d2a71 Auto merge of #64000 - Centril:rollup-70s9ar3, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #62734 (Hide trait default methods)
 - #63953 (bootstrap: allow specifying mirror for bootstrap compiler download.)
 - #63956 (rustc: Handle modules in "fat" LTO more robustly)
 - #63979 (std: Remove the `wasm_syscall` feature)

Failed merges:

r? @ghost
2019-08-29 15:14:47 +00:00
Mazdak Farrokhzad
d920aa0e02
Rollup merge of #63979 - alexcrichton:remove-wasm-syscall, r=dtolnay
std: Remove the `wasm_syscall` feature

This commit removes the `wasm_syscall` feature from the
wasm32-unknown-unknown build of the standard library. This feature was
originally intended to allow an opt-in way to interact with the
operating system in a posix-like way but it was never stabilized.
Nowadays with the advent of the `wasm32-wasi` target that should
entirely replace the intentions of the `wasm_syscall` feature.
2019-08-29 17:14:03 +02:00
Mazdak Farrokhzad
137564d825
Rollup merge of #63956 - alexcrichton:fix-lto-all-cached, r=michaelwoerister
rustc: Handle modules in "fat" LTO more robustly

When performing a "fat" LTO the compiler has a whole mess of codegen
units that it links together. To do this it needs to select one module
as a "base" module and then link everything else into this module.
Previously LTO passes assume that there's at least one module in-memory
to link into, but nowadays that's not always true! With incremental
compilation modules may actually largely be cached and it may be
possible that there's no in-memory modules to work with.

This commit updates the logic of the LTO backend to handle modules a bit
more uniformly during a fat LTO. This commit immediately splits them
into two lists, one serialized and one in-memory. The in-memory list is
then searched for the largest module and failing that we simply
deserialize the first serialized module and link into that. This
refactoring avoids juggling three lists, two of which are serialized
modules and one of which is half serialized and half in-memory.

Closes #63349
2019-08-29 17:14:01 +02:00
Mazdak Farrokhzad
78e728e2c2
Rollup merge of #63953 - crlf0710:bootstrap_mirroring, r=Mark-Simulacrum
bootstrap: allow specifying mirror for bootstrap compiler download.
2019-08-29 17:13:59 +02:00
Mazdak Farrokhzad
1ea8fc587c
Rollup merge of #62734 - GuillaumeGomez:hide-default-methods, r=Mark-Simulacrum
Hide trait default methods

Fixes #62499.

However, the question remains: do we want to extend it to this point or not?

r? @QuietMisdreavus
2019-08-29 17:13:57 +02:00
Guillaume Gomez
0e7424653e Add missing links on AsRef trait 2019-08-29 16:04:13 +02:00
bors
7445622bcb Auto merge of #63998 - Centril:rollup-pfuwxz3, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #63867 (resolve: Block expansion of a derive container until all its derives are resolved)
 - #63880 (Validation: check raw wide pointer metadata)
 - #63914 (ty: use Align for ReprOptions pack and align.)
 - #63941 (rustbuild: allow disabling deny(warnings) for bootstrap)
 - #63949 (Fix build src/libtest)
 - #63984 (Update rust-installer to limit memory use)
 - #63992 (Small improvement for Ord implementation of integers)

Failed merges:

r? @ghost
2019-08-29 11:20:45 +00:00
Mazdak Farrokhzad
3f05cf6776
Rollup merge of #63992 - lzutao:integer-ord, r=nagisa
Small improvement for Ord implementation of integers

Godbolt link: https://godbolt.org/z/tuTDOg

### Before

**asm**
```asm
example::cmp:
  mov eax, dword ptr [rdi]
  xor ecx, ecx
  cmp eax, dword ptr [rsi]
  seta cl
  mov eax, 255
  cmovae eax, ecx
  ret
```

**llvm-mca**
```
Iterations:        100
Instructions:      700
Total Cycles:      217
Total uOps:        1100

Dispatch Width:    6
uOps Per Cycle:    5.07
IPC:               3.23
Block RThroughput: 1.8
```

### After

**asm**
```asm
example::cmp:
  mov eax, dword ptr [rdi]
  xor ecx, ecx
  cmp eax, dword ptr [rsi]
  setne cl
  mov eax, 255
  cmovae eax, ecx
  ret
```

**llvm-mca**
```
Iterations:        100
Instructions:      700
Total Cycles:      209
Total uOps:        1000

Dispatch Width:    6
uOps Per Cycle:    4.78
IPC:               3.35
Block RThroughput: 1.7
```

r? @nagisa
2019-08-29 13:18:01 +02:00
Mazdak Farrokhzad
c94ead7ad7
Rollup merge of #63984 - cuviper:rust-installer-mem, r=Mark-Simulacrum
Update rust-installer to limit memory use

See https://github.com/rust-lang/rust-installer/pull/98 -- on a many-core machine, the xz memory for so many threads is more than a 32-bit process can handle. The xz stream is now limited to 8 threads.

r? @alexcrichton
2019-08-29 13:18:00 +02:00
Mazdak Farrokhzad
808722e44f
Rollup merge of #63949 - JohnTitor:fix-quick-build, r=Mark-Simulacrum
Fix build src/libtest

Fixes #63928

r? @Mark-Simulacrum
2019-08-29 13:17:59 +02:00
Mazdak Farrokhzad
2b7f5ecc93
Rollup merge of #63941 - Keruspe:warnings, r=Mark-Simulacrum
rustbuild: allow disabling deny(warnings) for bootstrap

When deny-warnings is not specified or set to true, the behaviour is the same as before.
When deny-warnings is set to false, warnings are now allowed

Fixes #63911
2019-08-29 13:17:57 +02:00
Mazdak Farrokhzad
2c28e02710
Rollup merge of #63914 - hvenev:repr-fields, r=eddyb
ty: use Align for ReprOptions pack and align.
2019-08-29 13:17:55 +02:00
Mazdak Farrokhzad
d2ba571850
Rollup merge of #63880 - RalfJung:miri-meta, r=oli-obk
Validation: check raw wide pointer metadata

While I was at it, I also added a missing check for slices not to be too big.

r? @oli-obk
Fixes https://github.com/rust-lang/miri/issues/918
2019-08-29 13:17:53 +02:00
Mazdak Farrokhzad
e4e6b01ca1
Rollup merge of #63867 - petrochenkov:dhelpers, r=matthewjasper
resolve: Block expansion of a derive container until all its derives are resolved

So, it turns out there's one more reason to block expansion of a `#[derive]` container until all the derives inside it are resolved, beside `Copy` (https://github.com/rust-lang/rust/pull/63248).

The set of derive helper attributes registered by derives in the container also has to be known before the derives themselves are expanded, otherwise it may be too late (see https://github.com/rust-lang/rust/pull/63468#issuecomment-524550872 and the `#[stable_hasher]`-related test failures in https://github.com/rust-lang/rust/pull/63468).

So, we stop our attempts to unblock the container earlier, as soon as the `Copy` status is known, and just block until all its derives are resolved.
After all the derives are resolved we immediately go and process their helper attributes in the item, without delaying it until expansion of the individual derives.

Unblocks https://github.com/rust-lang/rust/pull/63468
r? @matthewjasper (as a reviewer of https://github.com/rust-lang/rust/pull/63248)
cc @c410-f3r
2019-08-29 13:17:52 +02:00
bors
85ed538d69 Auto merge of #63990 - Centril:rollup-q1nt0b0, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #63811 (Correctly suggest adding bounds to `impl Trait` argument)
 - #63933 (Resolve some small issues related to #63580)
 - #63938 (or-pattern: fix typo in error message)
 - #63945 (Recover `mut $pat` and other improvements)
 - #63958 (const_prop: only call error_to_const_error if we are actually showing something)
 - #63961 (Add Option<Span> to `require_lang_item`)
 - #63963 (remove the reference to __cxa_thread_atexit_impl)
 - #63965 (Prevent syntax error in LD linker version script)
 - #63968 (rustc_apfloat: make the crate #![no_std] explicitly.)
 - #63970 (Notify me (flip1995) when Clippy toolstate changes)
 - #63980 (add missing `#[repr(C)]` on the Slices union)

Failed merges:

 - #63989 (Add Yaah to clippy toolstain notification list)

r? @ghost
2019-08-29 05:05:17 +00:00
Lzu Tao
ade191c70a Small improvement for Ord implementation of integers 2019-08-29 03:52:18 +00:00
Mazdak Farrokhzad
7391009236
Rollup merge of #63980 - DutchGhost:master, r=cramertj
add missing `#[repr(C)]` on the Slices union

Adds the `#[repr(C)]` attribute to the `Slices` union used to convert an `&str` into a `&[u8]`.
Without the attribute, the union has an unspecified layout: https://doc.rust-lang.org/reference/types/union.html, so performing the 'transmute' is unsound without the attribute (as far as I understand).

The `Repr` union, used for converting a raw ptr + len to a slice has this attribute as well:
https://github.com/rust-lang/rust/blob/master/src/libcore/ptr/mod.rs#L211-#L216
2019-08-29 05:32:58 +02:00