]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #68440 - matthiaskrgr:xpyclippy, r=Mark-Simulacrum
Tyler Mandry [Thu, 23 Jan 2020 00:02:19 +0000 (16:02 -0800)]
Rollup merge of #68440 - matthiaskrgr:xpyclippy, r=Mark-Simulacrum

bootstrap: update clippy subcmd decription

Clarify where the clippy used in `./x.py clippy` is coming from.
It uses whatever clippy binary was installed via rustup, cargo-install
or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.

4 years agoRollup merge of #68425 - phi-gamma:try-method, r=varkor
Tyler Mandry [Thu, 23 Jan 2020 00:02:17 +0000 (16:02 -0800)]
Rollup merge of #68425 - phi-gamma:try-method, r=varkor

Fix try-op diagnostic in E0277 for methods

For methods the try-op diagnostic displays the empty string where
it has more descriptive strings like “a function” otherwise:

    error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
                                                      ^^
       | |             ^^ cannot use the `?` operator in  that returns `()`
                                                        ^^

I’m seeing this on nightly (rustc 1.42.0-nightly (b5a3341f1
2020-01-20)) and [on the playpen](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0e7ce7792c2aceb8056941710d539124).

The changeset add strings for impl methods and trait provided
methods and test cases for the option type.

4 years agoRollup merge of #68410 - tmiasko:msan-lto, r=varkor
Tyler Mandry [Thu, 23 Jan 2020 00:02:16 +0000 (16:02 -0800)]
Rollup merge of #68410 - tmiasko:msan-lto, r=varkor

Export weak symbols used by MemorySanitizer

Export weak symbols defined by MemorySanitizer instrumentation, which are used
to implement `-Zsanitizer-memory-track-origins` and `-Zsanitizer-recover=memory`.
Previously, when using fat LTO, they would internalized and eliminated.

Fixes #68367.

4 years agoRollup merge of #68409 - sinkuu:temp_path, r=Mark-Simulacrum
Tyler Mandry [Thu, 23 Jan 2020 00:02:14 +0000 (16:02 -0800)]
Rollup merge of #68409 - sinkuu:temp_path, r=Mark-Simulacrum

Micro-optimize OutputFilenames

For example, its methods consume 6% of time during debug-compiling a `warp` example:
![Screenshot (debug-compiling a `warp` example)](https://user-images.githubusercontent.com/7091080/72780288-d74f1580-3c61-11ea-953b-34e59ca682f9.png)

This PR optimize them a bit by using `PathBuf::set_extension` instead of `Path::with_extension`, to avoid cloning `PathBuf` excessively.

4 years agoRollup merge of #68388 - varkor:toogeneric-wf, r=eddyb
Tyler Mandry [Thu, 23 Jan 2020 00:02:13 +0000 (16:02 -0800)]
Rollup merge of #68388 - varkor:toogeneric-wf, r=eddyb

Make `TooGeneric` error in WF checking a proper error

`TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.

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

r? @eddyb

4 years agoRollup merge of #68361 - t6:patch-freebsd-lld-i386, r=alexcrichton
Tyler Mandry [Thu, 23 Jan 2020 00:02:11 +0000 (16:02 -0800)]
Rollup merge of #68361 - t6:patch-freebsd-lld-i386, r=alexcrichton

Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386

Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBSD 13.0-CURRENT i386 where rust-nightly has been failing to link since 2019-12-10 with variations of
```
 = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib

          ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
          clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile `rustc_macros`.
```
Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log

AFAICT it stopped building after bumping compiler_builtins to 0.1.22 in https://github.com/rust-lang/rust/pull/67110.

4 years agoRollup merge of #68253 - japaric:bare-metal-cortex-a, r=alexcrichton
Tyler Mandry [Thu, 23 Jan 2020 00:02:09 +0000 (16:02 -0800)]
Rollup merge of #68253 - japaric:bare-metal-cortex-a, r=alexcrichton

add bare metal ARM Cortex-A targets to rustc

-> `rustc --target armv7a-none-eabi` will work

also build rust-std (rustup) components for them

-> `rustup target add armv7a-none-eabi` will work

this completes our bare-metal support of ARMv7 cores on stable Rust (by 1.42 or 1.43)

(these target specifications have been tested on a real (no emulation / QEMU) [Cortex-A7 core](https://github.com/iqlusioninc/usbarmory.rs/))

4 years agoRollup merge of #67195 - 0dvictor:nolink, r=tmandry
Tyler Mandry [Thu, 23 Jan 2020 00:02:08 +0000 (16:02 -0800)]
Rollup merge of #67195 - 0dvictor:nolink, r=tmandry

[experiment] Add `-Z no-link` flag

Adds a compiler option to allow rustc compile a crate without linking.
With this flag, `rustc` serializes codegen_results into a `.rlink` file.

Part of Issue #64191

4 years agoAdd `-Z no-link` flag
Victor Ding [Sat, 21 Dec 2019 10:37:15 +0000 (21:37 +1100)]
Add `-Z no-link` flag

Adds a compiler option to allow rustc compile a crate without linking.
With this flag, rustc serializes codegen_results into a .rlink file.

4 years agoAuto merge of #68192 - GuillaumeGomez:remove-inlined-types, r=kinnison
bors [Wed, 22 Jan 2020 18:04:56 +0000 (18:04 +0000)]
Auto merge of #68192 - GuillaumeGomez:remove-inlined-types, r=kinnison

Remove usage of global variable "inlined_types"

r? @pietroalbini

4 years agoAuto merge of #68069 - JohnTitor:fix-closure-ice, r=matthewjasper
bors [Wed, 22 Jan 2020 13:10:49 +0000 (13:10 +0000)]
Auto merge of #68069 - JohnTitor:fix-closure-ice, r=matthewjasper

Attempt to fix ICE #68025

Fixes #68025

4 years agoAuto merge of #68194 - jonas-schievink:fix-thumb-ci, r=alexcrichton
bors [Wed, 22 Jan 2020 09:49:03 +0000 (09:49 +0000)]
Auto merge of #68194 - jonas-schievink:fix-thumb-ci, r=alexcrichton

Fix CI for embedded ARM targets

Closes https://github.com/rust-lang/rust/issues/67018

It would be better to move the `thumb-none-cortex-m` test into the `cargotest` suite, but it doesn't seem to support cross-compilation.

4 years agoAuto merge of #68442 - Centril:rollup-ir2vmid, r=Centril
bors [Wed, 22 Jan 2020 00:50:48 +0000 (00:50 +0000)]
Auto merge of #68442 - Centril:rollup-ir2vmid, r=Centril

Rollup of 3 pull requests

Successful merges:

 - #68421 (Update cargo, books)
 - #68422 (typeck: simplify the handling of `diverges`)
 - #68439 (Update Clippy)

Failed merges:

r? @ghost

4 years agoRollup merge of #68439 - JohnTitor:clippy-up, r=JohnTitor
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:12 +0000 (01:50 +0100)]
Rollup merge of #68439 - JohnTitor:clippy-up, r=JohnTitor

Update Clippy

Fixes #68431

r? @ghost

4 years agoRollup merge of #68422 - Centril:diverges-simplify, r=eddyb
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:10 +0000 (01:50 +0100)]
Rollup merge of #68422 - Centril:diverges-simplify, r=eddyb

typeck: simplify the handling of `diverges`

Some drive-by cleanup while working on `hir::ExprKind::Let`.
Ostensibly, this has some perf benefits due to reduced allocation and whatnot as well.

r? @eddyb

4 years agoRollup merge of #68421 - ehuss:update-cargo-books, r=alexcrichton
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:09 +0000 (01:50 +0100)]
Rollup merge of #68421 - ehuss:update-cargo-books, r=alexcrichton

Update cargo, books

## cargo

9 commits in ad3dbe10e1e654fb1f032a5dd9481d7cbaa00d65..f6449ba236db31995255ac5e4cad4ab88296a7c6
2020-01-13 21:37:15 +0000 to 2020-01-21 16:15:39 +0000
- Fix wrong directories in host_libdir. (rust-lang/cargo#7798)
- Update humantime requirement from 1.2.0 to 2.0.0 (rust-lang/cargo#7815)
- Fix doc_target test which no longer works on stable/beta. (rust-lang/cargo#7817)
- Fix some erroneous em-dashes in man pages. (rust-lang/cargo#7814)
- fix some clippy warnings (rust-lang/cargo#7808)
- Don't assume iowait always increases on Linux (rust-lang/cargo#7803)
- Add and update some doc comments. (rust-lang/cargo#7800)
- Consistently use em-dash in environment documentation page. (rust-lang/cargo#7799)
- Load credentials only when needed (rust-lang/cargo#7774)

## reference

3 commits in e1157538e86d83df0cf95d5e33bd943f80d0248f..11e893fc1357bc688418ddf1087c2b7aa25d154d
2019-12-22 13:13:14 +0100 to 2020-01-18 21:24:08 +0100
- Small improvements to types/pointer.md (rust-lang-nursery/reference#726)
- repr(transparent): mention align=1 requirement (rust-lang-nursery/reference#737)
- Elaborate on how to use an extern static correctly (rust-lang-nursery/reference#736)

## book

4 commits in 5c5cfd2e94cd42632798d9bd3d1116133e128ac9..87dd6843678575f8dda962f239d14ef4be14b352
2019-12-16 09:27:21 -0600 to 2020-01-20 15:20:40 -0500
- Fix listing numbers (rust-lang/book#2227)
- Move `async` and `await` keywords to 'Currently in Use' (rust-lang/book#2140)
- More cleanup - remove unneeded files (rust-lang/book#2213)
- Small cleanups extracted from the bigger pr i'm working on (rust-lang/book#2212)

## rust-by-example

1 commits in 1d59403cb5269c190cc52a95584ecc280345495a..1c2bd024d13f8011307e13386cf1fea2180352b5
2019-12-27 08:27:05 -0300 to 2020-01-20 12:18:36 -0300
- CamelCase -> UpperCamelCase (rust-lang/rust-by-example#1302)

## embedded-book

1 commits in 9493b7d4dc97eda439bd8780f05ad7b234cd1cd7..4d78994915af1bde9a95c04a8c27d8dca066232a
2019-12-27 20:05:00 +0000 to 2020-01-14 08:25:25 +0000
- Update .gitattributes  (rust-embedded/book#221)

4 years agobootstrap: update clippy subcmd decription
Matthias Krüger [Wed, 22 Jan 2020 00:02:32 +0000 (01:02 +0100)]
bootstrap: update clippy subcmd decription

Clarify where the clippy used in `./x.py clippy` is coming from.
It uses whatever clippy binary was installed via rustup, cargo-install
or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.

4 years agoUpdate Clippy
Yuki Okushi [Tue, 21 Jan 2020 23:53:31 +0000 (08:53 +0900)]
Update Clippy

4 years agoDo not base path to append extension
Mark Rousskov [Tue, 21 Jan 2020 14:57:50 +0000 (09:57 -0500)]
Do not base path to append extension

We already have ownership of the base path, so no need to clone it (within
Path::with_extension).

4 years agoStore filestem in a pre-formatted form
Mark Rousskov [Tue, 21 Jan 2020 14:54:58 +0000 (09:54 -0500)]
Store filestem in a pre-formatted form

4 years agoPrivatize private fields of OutputFilenames
Mark Rousskov [Tue, 21 Jan 2020 14:50:22 +0000 (09:50 -0500)]
Privatize private fields of OutputFilenames

4 years agoCleanup: rewrite conditional as match
Philipp Gesang [Tue, 21 Jan 2020 20:46:38 +0000 (21:46 +0100)]
Cleanup: rewrite conditional as match

As suggested by @Centril.

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agoAuto merge of #68423 - Centril:rollup-bdjykrv, r=Centril
bors [Tue, 21 Jan 2020 18:55:26 +0000 (18:55 +0000)]
Auto merge of #68423 - Centril:rollup-bdjykrv, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #67686 (Simplify NodeHeader by avoiding slices in BTreeMaps with shared roots)
 - #68140 (Implement `?const` opt-out for trait bounds)
 - #68313 (Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD)
 - #68328 (Actually pass target LLVM args to LLVM)
 - #68399 (check_match: misc unifications and ICE fixes)
 - #68415 (tidy: fix most clippy warnings)
 - #68416 (lowering: cleanup some hofs)

Failed merges:

r? @ghost

4 years agoRollup merge of #68416 - Centril:lowering-cleanup-hofs, r=pietroalbini
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:28 +0000 (19:42 +0100)]
Rollup merge of #68416 - Centril:lowering-cleanup-hofs, r=pietroalbini

lowering: cleanup some hofs

Some drive-by cleanup while working on `let_chains`.

r? @pietroalbini

4 years agoRollup merge of #68415 - matthiaskrgr:tidy_clippy, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:26 +0000 (19:42 +0100)]
Rollup merge of #68415 - matthiaskrgr:tidy_clippy, r=oli-obk

tidy: fix most clippy warnings

4 years agoRollup merge of #68399 - Centril:check-match-unify, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:25 +0000 (19:42 +0100)]
Rollup merge of #68399 - Centril:check-match-unify, r=oli-obk

check_match: misc unifications and ICE fixes

These are some unifications made as a by-product of working on `hir::ExprKind::Let`.

Fixes https://github.com/rust-lang/rust/issues/68396.
Fixes https://github.com/rust-lang/rust/issues/68394.
Fixes https://github.com/rust-lang/rust/issues/68393.

r? @oli-obk @matthewjasper

4 years agoRollup merge of #68328 - jethrogb:jb/target-llvm-args, r=alexcrichton
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:23 +0000 (19:42 +0100)]
Rollup merge of #68328 - jethrogb:jb/target-llvm-args, r=alexcrichton

Actually pass target LLVM args to LLVM

Missed in #68059

r? @alexcrichton

4 years agoRollup merge of #68313 - batrla:master, r=alexcrichton
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:22 +0000 (19:42 +0100)]
Rollup merge of #68313 - batrla:master, r=alexcrichton

Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD

Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD and Solaris

See ip(4P) man page:
 IP_MULTICAST_TTL     Time  to live for multicast datagrams. This option
                      takes an unsigned character as  an  argument.  Its
                      value  is  the TTL that IP uses on outgoing multi-
                      cast datagrams. The default is 1.

 IP_MULTICAST_LOOP    Loopback for multicast datagrams. Normally  multi-
                      cast  datagrams  are  delivered  to members on the
                      sending  host  (or  sending  zone).  Setting   the
                      unsigned  character argument to 0 causes the oppo-
                      site behavior, meaning that  when  multiple  zones
                      are  present,  the  datagrams are delivered to all
                      zones except the sending zone.

https://docs.oracle.com/cd/E88353_01/html/E37851/ip-4p.html
https://man.openbsd.org/ip.4

4 years agoRollup merge of #68140 - ecstatic-morse:const-trait-bound-opt-out, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:20 +0000 (19:42 +0100)]
Rollup merge of #68140 - ecstatic-morse:const-trait-bound-opt-out, r=oli-obk

Implement `?const` opt-out for trait bounds

For now, such bounds are treated exactly the same as unprefixed ones in all contexts. [RFC 2632](https://github.com/rust-lang/rfcs/pull/2632) does not specify whether such bounds are forbidden outside of `const` contexts, so they are allowed at the moment.

Prior to this PR, the constness of a trait bound/impl was stored in `TraitRef`. Now, the constness of an `impl` is stored in `ast::ItemKind::Impl` and the constness of a bound in `ast::TraitBoundModifer`. Additionally, constness of trait bounds is now stored in an additional field of `ty::Predicate::Trait`, and the combination of the constness of the item along with any `TraitBoundModifier` determines the constness of the bound in accordance with the RFC. Encoding the constness of impls at the `ty` level is left for a later PR.

After a discussion in \#wg-grammar on Discord, it was decided that the grammar should not encode the mutual exclusivity of trait bound modifiers. The grammar for trait bound modifiers remains `[?const] [?]`. To encode this, I add a dummy variant to `ast::TraitBoundModifier` that is used when the syntax `?const ?` appears. This variant causes an error in AST validation and disappears during HIR lowering.

cc #67794

r? @oli-obk

4 years agoRollup merge of #67686 - ssomers:keys_start_slasher, r=Mark-Simulacrum
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:17 +0000 (19:42 +0100)]
Rollup merge of #67686 - ssomers:keys_start_slasher, r=Mark-Simulacrum

Simplify NodeHeader by avoiding slices in BTreeMaps with shared roots

Simplify a complicated piece of code that creates slices of keys in node leaves.

4 years agoDo not use Cortex-M0 since Qemu is too old
Jonas Schievink [Tue, 21 Jan 2020 13:35:04 +0000 (14:35 +0100)]
Do not use Cortex-M0 since Qemu is too old

4 years agoCheck in lockfile
Jonas Schievink [Tue, 21 Jan 2020 10:37:02 +0000 (11:37 +0100)]
Check in lockfile

4 years agoUpdate dependencies
Jonas Schievink [Tue, 21 Jan 2020 10:12:17 +0000 (11:12 +0100)]
Update dependencies

This fixes a linkage issue that was fixed a while ago, and adds thumbv8
support.

4 years agoUse the right runners for all thumb targets
Jonas Schievink [Tue, 21 Jan 2020 10:11:28 +0000 (11:11 +0100)]
Use the right runners for all thumb targets

4 years agoAccount for run-make tests in `is_up_to_date`
Jonas Schievink [Mon, 13 Jan 2020 23:56:11 +0000 (00:56 +0100)]
Account for run-make tests in `is_up_to_date`

4 years agoFix thumb target CI
Jonas Schievink [Mon, 13 Jan 2020 23:42:19 +0000 (00:42 +0100)]
Fix thumb target CI

4 years agoTest try diagnostics for impl and trait methods
Philipp Gesang [Tue, 21 Jan 2020 20:51:13 +0000 (21:51 +0100)]
Test try diagnostics for impl and trait methods

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agoUpdate cargo, books
Eric Huss [Tue, 21 Jan 2020 17:55:43 +0000 (09:55 -0800)]
Update cargo, books

4 years agoHandle methods in try diagnostic
Philipp Gesang [Tue, 21 Jan 2020 20:49:23 +0000 (21:49 +0100)]
Handle methods in try diagnostic

The diagnostic for diagnostic for methods and trait provided
methods would only show the empty string:

    error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)

Handle the missing cases so it reads ``a method'' / ``an async
method'' / ``a trait method'' respectively.

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agotypeck: remove redundant diverges check
Mazdak Farrokhzad [Tue, 21 Jan 2020 17:47:58 +0000 (18:47 +0100)]
typeck: remove redundant diverges check

4 years agotypeck: remove redundant diverges code
Mazdak Farrokhzad [Tue, 21 Jan 2020 17:24:25 +0000 (18:24 +0100)]
typeck: remove redundant diverges code

4 years agotypeck: use diverges.replace(..)
Mazdak Farrokhzad [Tue, 21 Jan 2020 16:37:11 +0000 (17:37 +0100)]
typeck: use diverges.replace(..)

4 years agofor now, do not build rust-std for the armv7a-none-eabihf target
Jorge Aparicio [Tue, 21 Jan 2020 16:18:37 +0000 (17:18 +0100)]
for now, do not build rust-std for the armv7a-none-eabihf target

it needs some upstream changes in the build script of the compiler-builtins
crate

4 years agolowering: cleanup some hofs
Mazdak Farrokhzad [Tue, 21 Jan 2020 16:04:43 +0000 (17:04 +0100)]
lowering: cleanup some hofs

4 years agoAuto merge of #65672 - ecstatic-morse:unified-dataflow-proto, r=pnkfelix
bors [Tue, 21 Jan 2020 15:29:18 +0000 (15:29 +0000)]
Auto merge of #65672 - ecstatic-morse:unified-dataflow-proto, r=pnkfelix

A single framework for gen-kill and generic dataflow problems

This is the prototype implementation discussed in rust-lang/compiler-team#202. You can read a high-level description of it in [the proposal](https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS) for that design meeting. This would eventually supersede the existing `BitDenotation` interface.

r? @ghost

cc @rust-lang/compiler (esp. @eddyb and @pnkfelix)

4 years agoDeclare unsafe functions that can no longer handle shared roots
Stein Somers [Tue, 21 Jan 2020 15:12:19 +0000 (16:12 +0100)]
Declare unsafe functions that can no longer handle shared roots

4 years agotidy: fix most clippy warnings
Matthias Krüger [Tue, 21 Jan 2020 14:33:17 +0000 (15:33 +0100)]
tidy: fix most clippy warnings

4 years agoAdd comment explaining `MaybeConstMaybe` lowering
Dylan MacKenzie [Tue, 21 Jan 2020 09:42:45 +0000 (01:42 -0800)]
Add comment explaining `MaybeConstMaybe` lowering

4 years agotrade in outdated comments for correct ones
Stein Somers [Tue, 21 Jan 2020 09:30:14 +0000 (10:30 +0100)]
trade in outdated comments for correct ones

4 years agoAuto merge of #68267 - estebank:lt-sugg, r=petrochenkov
bors [Tue, 21 Jan 2020 06:28:33 +0000 (06:28 +0000)]
Auto merge of #68267 - estebank:lt-sugg, r=petrochenkov

Tweak lifetime definition errors

Taking inspiration from the narrative in @fasterthanlime's https://fasterthanli.me/blog/2019/declarative-memory-management/, add suggestions to some lifetime definition errors.

4 years agoAuto merge of #68154 - ssomers:btreemap_navigation_benches, r=Mark-Simulacrum
bors [Tue, 21 Jan 2020 03:07:01 +0000 (03:07 +0000)]
Auto merge of #68154 - ssomers:btreemap_navigation_benches, r=Mark-Simulacrum

Add more BTreeMap/BTreeSet benchmarks regarding iteration

Serving #67073 or other developments

4 years agoMake `TooGeneric` error in WF checking a proper error
varkor [Mon, 20 Jan 2020 15:22:12 +0000 (15:22 +0000)]
Make `TooGeneric` error in WF checking a proper error

`TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.

4 years agoMark __msan_keep_going as an exported symbol for LTO
Tomasz Miąsko [Tue, 21 Jan 2020 00:00:00 +0000 (00:00 +0000)]
Mark __msan_keep_going as an exported symbol for LTO

4 years agoAuto merge of #68405 - JohnTitor:rollup-kj0x4za, r=JohnTitor
bors [Mon, 20 Jan 2020 23:35:50 +0000 (23:35 +0000)]
Auto merge of #68405 - JohnTitor:rollup-kj0x4za, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #67734 (Remove appendix from Apache license)
 - #67795 (Cleanup formatting code)
 - #68290 (Fix some tests failing in `--pass check` mode)
 - #68297 ( Filter and test predicates using `normalize_and_test_predicates` for const-prop)
 - #68302 (Fix #[track_caller] and function pointers)
 - #68339 (Add `riscv64gc-unknown-linux-gnu` into target list in build-manifest)
 - #68381 (Added minor clarification to specification of GlobalAlloc::realloc.)
 - #68397 (rustdoc: Correct order of `async` and `unsafe` in `async unsafe fn`s)

Failed merges:

r? @ghost

4 years agocheck_match: simplify check_arm
Mazdak Farrokhzad [Mon, 20 Jan 2020 21:23:07 +0000 (22:23 +0100)]
check_match: simplify check_arm

4 years agoRollup merge of #68397 - ollie27:rustdoc_async_unsafe, r=Centril
Yuki Okushi [Mon, 20 Jan 2020 22:32:50 +0000 (07:32 +0900)]
Rollup merge of #68397 - ollie27:rustdoc_async_unsafe, r=Centril

rustdoc: Correct order of `async` and `unsafe` in `async unsafe fn`s

The order was swapped in #61319 but rustdoc was never updated to match.

r? @GuillaumeGomez

4 years agoRollup merge of #68381 - mjp41:master, r=Dylan-DPC
Yuki Okushi [Mon, 20 Jan 2020 22:32:48 +0000 (07:32 +0900)]
Rollup merge of #68381 - mjp41:master, r=Dylan-DPC

Added minor clarification to specification of GlobalAlloc::realloc.

The specification of `realloc` is slightly unclear:

```
    /// * `layout` must be the same layout that was used
    ///   to allocate that block of memory,
```
https://github.com/rust-lang/rust/blob/master/src/libcore/alloc.rs#L541-L542

In the case of an `alloc` or `alloc_zeroed` this is fairly evidently the `layout` parameter passed into the original call.  In the case of a `realloc`, this I assume is `layout` modified to contain `new_size`.  However, I could not find this case specified in the documentation.  Thus technically in a sequence of calls to `realloc`, it would be valid to provide the second call to `realloc` the same `layout` as the first call to `realloc`, which is almost certainly not going to be handled correctly.

This PR attempts to clarify the specification.

4 years agoRollup merge of #68339 - msizanoen1:patch-1, r=pietroalbini
Yuki Okushi [Mon, 20 Jan 2020 22:32:47 +0000 (07:32 +0900)]
Rollup merge of #68339 - msizanoen1:patch-1, r=pietroalbini

Add `riscv64gc-unknown-linux-gnu` into target list in build-manifest

Missed in #68037

r? @alexcrichton

4 years agoRollup merge of #68302 - anp:caller-fn-ptr, r=eddyb,oli-obk
Yuki Okushi [Mon, 20 Jan 2020 22:32:45 +0000 (07:32 +0900)]
Rollup merge of #68302 - anp:caller-fn-ptr, r=eddyb,oli-obk

Fix #[track_caller] and function pointers

Starting with failing tests, fix the miscompilation and ICE caused by `ReifyShim` bug.

Fixes #68178.

4 years agoRollup merge of #68297 - Aaron1011:fix/new-const-prop-bounds, r=oli-obk
Yuki Okushi [Mon, 20 Jan 2020 22:32:44 +0000 (07:32 +0900)]
Rollup merge of #68297 - Aaron1011:fix/new-const-prop-bounds, r=oli-obk

 Filter and test predicates using `normalize_and_test_predicates` for const-prop

Fixes #68264

Previously, I attempted to use
`substitute_normalize_and_test_predicates` to detect unsatisfiable
bounds. Unfortunately, since const-prop runs in a generic environment
(we don't have any of the function's generic parameters substituted),
this could lead to cycle errors when attempting to normalize predicates.

This check is replaced with a more precise check. We now only call
`normalize_and_test_predicates` on predicates that have the possibility
of being proved unsatisfiable - that is, predicates that don't depend
on anything local to the function (e.g. generic parameters). This
ensures that we don't hit cycle errors when we normalize said
predicates, while still ensuring that we detect unsatisfiable
predicates.

I haven't been able to come up with a minimization of the Diesel issue - however, I've verified that it compiles successfully.

4 years agoRollup merge of #68290 - petrochenkov:passcheck, r=oli-obk
Yuki Okushi [Mon, 20 Jan 2020 22:32:42 +0000 (07:32 +0900)]
Rollup merge of #68290 - petrochenkov:passcheck, r=oli-obk

Fix some tests failing in `--pass check` mode

Warnings reported at codegen or linking time either have to be converted to errors (preferable), or the tests for them need to be marked with `// ignore-pass` (as a last resort).

https://github.com/rust-lang/rust/commit/ecd5852194f43511443f134aebf0462b58c8e197 turned them from errors to warnings, but that shouldn't be necessary because it's still clear from the `.stderr` output that the errors are lints and not hard-coded.

4 years agoRollup merge of #67795 - Mark-Simulacrum:fmt-argument, r=dtolnay
Yuki Okushi [Mon, 20 Jan 2020 22:32:40 +0000 (07:32 +0900)]
Rollup merge of #67795 - Mark-Simulacrum:fmt-argument, r=dtolnay

Cleanup formatting code

This removes a few leftover positional enum variants that were no longer used.

All details that are changed are unstable (and `#[doc(hidden)]`), so this should
not impact downstream code.

4 years agoRollup merge of #67734 - XAMPPRocky:master, r=skade
Yuki Okushi [Mon, 20 Jan 2020 22:32:39 +0000 (07:32 +0900)]
Rollup merge of #67734 - XAMPPRocky:master, r=skade

Remove appendix from Apache license

Looking at the codebase I noticed an oddity, in that the appendix of how use the Apache licence is still contained in the licence file. We don't put licence headers at the top of all of our files so I don't think we need to keep this. Alternatively we could delete everything above line 191 to have a shorter licence file.

4 years agoMark __msan_track_origins as an exported symbol for LTO
Nikita Popov [Sun, 19 Jan 2020 21:08:15 +0000 (22:08 +0100)]
Mark __msan_track_origins as an exported symbol for LTO

4 years agoAuto merge of #68066 - CAD97:stabilize-manuallydrop-take, r=Amanieu,Mark-Simulacrum
bors [Mon, 20 Jan 2020 20:11:20 +0000 (20:11 +0000)]
Auto merge of #68066 - CAD97:stabilize-manuallydrop-take, r=Amanieu,Mark-Simulacrum

Stabilize ManuallyDrop::take

Tracking issue: closes #55422
FCP merge: https://github.com/rust-lang/rust/issues/55422#issuecomment-572653619

Reclaims the doc improvements from closed #62198.

-----

Stable version is a simple change if necessary.

Proposal: [relnotes] (this changes how to best take advantage of `ManuallyDrop`, esp. wrt. `Drop::drop` and finalize-by-value members)

4 years agoAdd aliases attribute check
Guillaume Gomez [Mon, 20 Jan 2020 19:42:52 +0000 (20:42 +0100)]
Add aliases attribute check

4 years agocheck_match: unify some lowering code and fix some ICEs
Mazdak Farrokhzad [Mon, 20 Jan 2020 18:46:06 +0000 (19:46 +0100)]
check_match: unify some lowering code and fix some ICEs

4 years agorefactor fix using cfg_if! (fix build on Solaris)
Vita Batrla [Mon, 20 Jan 2020 18:15:37 +0000 (19:15 +0100)]
refactor fix using cfg_if! (fix build on Solaris)

4 years agorustdoc: Correct order of `async` and `unsafe` in `async unsafe fn`s
Oliver Middleton [Mon, 20 Jan 2020 18:14:51 +0000 (18:14 +0000)]
rustdoc: Correct order of `async` and `unsafe` in `async unsafe fn`s

4 years agoFix UI test
Mark Rousskov [Mon, 20 Jan 2020 17:17:12 +0000 (12:17 -0500)]
Fix UI test

fmt::Formatter is still not Send/Sync, but the UI test emitted two errors, for
the dyn Write and the Void inside Formatter. As of this PR, the Void is now
gone, but the dyn Write remains.

4 years agogeneralize bindings_with_variant_name lint
Mazdak Farrokhzad [Mon, 20 Jan 2020 16:57:08 +0000 (17:57 +0100)]
generalize bindings_with_variant_name lint

4 years agoDrop args from Formatter
Mark Rousskov [Wed, 1 Jan 2020 19:09:50 +0000 (14:09 -0500)]
Drop args from Formatter

These are no longer used by Formatter methods.

4 years agoMove run/getcount to functions
Mark Rousskov [Wed, 1 Jan 2020 18:58:57 +0000 (13:58 -0500)]
Move run/getcount to functions

These are only called from one place and don't generally support being called
from other places; furthermore, they're the only formatter functions that look
at the `args` field (which a future commit will remove).

4 years agoDelete unused "next" variants from formatting infrastructure
Mark Rousskov [Wed, 1 Jan 2020 18:14:33 +0000 (13:14 -0500)]
Delete unused "next" variants from formatting infrastructure

The formatting infrastructure stopped emitting these a while back, and in
removing them we can simplify related code.

4 years agoAuto merge of #68277 - michaelwoerister:re-export-dylib-instances, r=alexcrichton
bors [Mon, 20 Jan 2020 13:37:03 +0000 (13:37 +0000)]
Auto merge of #68277 - michaelwoerister:re-export-dylib-instances, r=alexcrichton

Make sure that all upstream generics get re-exported from Rust dylibs.

This PR contains a fix for #67276. Rust dylibs would not re-export all generic instances when compiling with `-Zshare-generics=on` (=default for debug builds) which could lead to situations where the compiler expected certain generic instances to be available but then the linker would not find them.

### TODO
- [x] Write a regression test based on the description [here](https://github.com/rust-lang/rust/issues/67276#issuecomment-574613457).
- [x] Find out if this also fixes other issues related to https://github.com/rust-lang/rust/issues/64319.

r? @alexcrichton ~~(once the TODOs are done)~~
cc @pnkfelix @AlexKornitzer

4 years agoRemove usage of global variable "inlined_types"
Guillaume Gomez [Mon, 13 Jan 2020 22:28:34 +0000 (23:28 +0100)]
Remove usage of global variable "inlined_types"

4 years agoAdd regression test for #64319 back in.
Michael Woerister [Thu, 16 Jan 2020 14:18:11 +0000 (15:18 +0100)]
Add regression test for #64319 back in.

The regression test is originally from #64324 but was removed again
after the fix in there turned out to break other things.

4 years agoAdd regression test for shared-generics x dylibs (#67276).
Michael Woerister [Thu, 16 Jan 2020 14:09:49 +0000 (15:09 +0100)]
Add regression test for shared-generics x dylibs (#67276).

4 years agoMake sure that all upstream generics get re-exported from Rust dylibs.
Michael Woerister [Thu, 16 Jan 2020 12:21:10 +0000 (13:21 +0100)]
Make sure that all upstream generics get re-exported from Rust dylibs.

4 years agoAdded minor clarification to specification of realloc.
Matthew Parkinson [Mon, 20 Jan 2020 10:01:17 +0000 (10:01 +0000)]
Added minor clarification to specification of realloc.

The `layout` for the returned allocation of a `realloc` is
only implicitly specified.  This change makes it explicit.

4 years agoUpdate tests
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:34 +0000 (20:30 -0800)]
Update tests

4 years agoParse `?const ?Trait`
Dylan MacKenzie [Mon, 20 Jan 2020 09:20:45 +0000 (01:20 -0800)]
Parse `?const ?Trait`

4 years agoIgnore filelength for `astconv`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:35 +0000 (20:30 -0800)]
Ignore filelength for `astconv`

4 years agoTrack constness while lowering bounds
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:33 +0000 (20:30 -0800)]
Track constness while lowering bounds

4 years agoAdd `ConstnessAnd` that implements `ToPredicate`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:32 +0000 (20:30 -0800)]
Add `ConstnessAnd` that implements `ToPredicate`

4 years agoAdd `constness` field to `ty::Predicate::Trait`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:31 +0000 (20:30 -0800)]
Add `constness` field to `ty::Predicate::Trait`

4 years agoRevert "Add a `constness` field to `ast::TraitRef`"
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:29 +0000 (20:30 -0800)]
Revert "Add a `constness` field to `ast::TraitRef`"

This reverts commit fd4a6a12136c5b5d6bce4081e95890df1fd1febd.

4 years agoAdd `MaybeConst` variant to `{ast,hir}::TraitBoundModifier`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:27 +0000 (20:30 -0800)]
Add `MaybeConst` variant to `{ast,hir}::TraitBoundModifier`

4 years agoMerge branch 'master' into bare-metal-cortex-a
Jorge Aparicio [Mon, 20 Jan 2020 07:50:32 +0000 (07:50 +0000)]
Merge branch 'master' into bare-metal-cortex-a

4 years agoStore `impl const` in `ItemKind::Impl`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:25 +0000 (20:30 -0800)]
Store `impl const` in `ItemKind::Impl`

4 years agoAdd `constness` field to `hir::ItemKind::Impl`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:24 +0000 (20:30 -0800)]
Add `constness` field to `hir::ItemKind::Impl`

4 years agoAdd `constness` field to `ast::ItemKind::Impl`
Dylan MacKenzie [Tue, 14 Jan 2020 04:30:23 +0000 (20:30 -0800)]
Add `constness` field to `ast::ItemKind::Impl`

4 years agoAuto merge of #68380 - Dylan-DPC:rollup-a7moqmr, r=Dylan-DPC
bors [Mon, 20 Jan 2020 05:56:53 +0000 (05:56 +0000)]
Auto merge of #68380 - Dylan-DPC:rollup-a7moqmr, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #68326 (rustdoc: Catch fatal errors when syntax highlighting)
 - #68335 (Remove real_drop_in_place)
 - #68353 (Remove `rustc_error_codes` deps except in `rustc_driver`)
 - #68357 (rustdoc: Fix handling of compile errors when running `rustdoc --test`)
 - #68365 (Clean up error codes)

Failed merges:

r? @ghost

4 years agoRollup merge of #68365 - GuillaumeGomez:clean-up-err-codes-2, r=Dylan-DPC
Dylan DPC [Mon, 20 Jan 2020 05:44:51 +0000 (11:14 +0530)]
Rollup merge of #68365 - GuillaumeGomez:clean-up-err-codes-2, r=Dylan-DPC

Clean up error codes

r? @Dylan-DPC

4 years agoRollup merge of #68357 - ollie27:rustdoc_test_errors, r=GuillaumeGomez
Dylan DPC [Mon, 20 Jan 2020 05:44:49 +0000 (11:14 +0530)]
Rollup merge of #68357 - ollie27:rustdoc_test_errors, r=GuillaumeGomez

rustdoc: Fix handling of compile errors when running `rustdoc --test`

 * Call `abort_if_errors` so all errors actually stop rustdoc.
* Don't panic with "compiler aborted in rustdoc!", instead just exit to avoid the ugly panic message.
* Use rlib as the crate type when searching for doctests matching what is used for doc generation so `#[no_std]` crates don't create "no global memory allocator" errors.

Fixes #52243
Fixes #54010

r? @GuillaumeGomez

4 years agoRollup merge of #68353 - Centril:code-liberation, r=petrochenkov
Dylan DPC [Mon, 20 Jan 2020 05:44:48 +0000 (11:14 +0530)]
Rollup merge of #68353 - Centril:code-liberation, r=petrochenkov

Remove `rustc_error_codes` deps except in `rustc_driver`

Remove dependencies on `rustc_error_codes` in all crates except for `rustc_driver`.

This has some benefits:

1. Adding a new error code when hacking on the compiler only requires rebuilding at most `rustc_error_codes`, `rustc_driver`, and the reflexive & transitive closure of the crate where the new error code is being added and its reverse dependencies. This improves time-to-UI-tests (TTUT).

2. Adding an error description to an error code only requires rebuilding `rustc_error_codes` and `rustc_driver`. This should substantially improve TTUT.

r? @petrochenkov
cc @rust-lang/wg-diagnostics

4 years agoRollup merge of #68335 - RalfJung:drop-in-place, r=Mark-Simulacrum
Dylan DPC [Mon, 20 Jan 2020 05:44:46 +0000 (11:14 +0530)]
Rollup merge of #68335 - RalfJung:drop-in-place, r=Mark-Simulacrum

Remove real_drop_in_place

In https://github.com/rust-lang/rust/commit/af9b057156f610df3528a502c668cfed99ce8a1a, I added `real_drop_in_place` because Stacked Borrows at the time couldn't handle transmuting of mutable references to raw pointers and back. Stacked Borrows 2, however, doesn't have any issue with these transmutes, so it is time to remove this hack again.

4 years agoRollup merge of #68326 - ollie27:rustdoc_hightlight_fatal_errors, r=GuillaumeGomez
Dylan DPC [Mon, 20 Jan 2020 05:44:42 +0000 (11:14 +0530)]
Rollup merge of #68326 - ollie27:rustdoc_hightlight_fatal_errors, r=GuillaumeGomez

rustdoc: Catch fatal errors when syntax highlighting

For some errors the lexer will unwind so we need to handle that in addition to handling `token::Unknown`.

Fixes #56885

r? @GuillaumeGomez

4 years agoDocument all methods
Dylan MacKenzie [Mon, 20 Jan 2020 02:47:29 +0000 (18:47 -0800)]
Document all methods

4 years agoExplain motivation for `GenKill` trait
Dylan MacKenzie [Mon, 20 Jan 2020 02:31:56 +0000 (18:31 -0800)]
Explain motivation for `GenKill` trait