]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoMake extern ref HTTPS
Jonathan Claudius [Mon, 7 Jan 2019 14:52:32 +0000 (09:52 -0500)]
Make extern ref HTTPS

5 years agoAuto merge of #57336 - ehuss:bump-stage0, r=alexcrichton
bors [Mon, 7 Jan 2019 11:31:32 +0000 (11:31 +0000)]
Auto merge of #57336 - ehuss:bump-stage0, r=alexcrichton

Bump stage0

Updates stage 0
From: rustc 1.32.0-beta.2 (a01e4761a 2018-12-08)
To:   rustc 1.32.0-beta.11 (e64fee6a3 2019-01-04)

Intended to pull in #57292 which will fix #57142.

The following is a list of PRs this also pulls in in case anyone is interested in seeing the changes:

#56930
#56961
#57236
#57305

5 years agoAuto merge of #57327 - akash-fortanix:aa/update-compiler_builtins, r=kennytm
bors [Mon, 7 Jan 2019 08:55:49 +0000 (08:55 +0000)]
Auto merge of #57327 - akash-fortanix:aa/update-compiler_builtins, r=kennytm

Update compiler_builtins 0.1.2 -> 0.1.4

r? @alexcrichton

5 years agoAuto merge of #57394 - euclio:compiletest-optimization, r=Mark-Simulacrum
bors [Mon, 7 Jan 2019 06:17:37 +0000 (06:17 +0000)]
Auto merge of #57394 - euclio:compiletest-optimization, r=Mark-Simulacrum

slightly optimize compiletest test collection

Save quite a few syscalls and avoiding pushing in a loop.

5 years agoslightly optimize compiletest test collection
Andy Russell [Mon, 7 Jan 2019 04:18:00 +0000 (23:18 -0500)]
slightly optimize compiletest test collection

Save quite a few syscalls and avoiding pushing in a loop.

5 years agoAuto merge of #57365 - sinkuu:unused, r=oli-obk
bors [Mon, 7 Jan 2019 03:44:41 +0000 (03:44 +0000)]
Auto merge of #57365 - sinkuu:unused, r=oli-obk

Remove unused code

5 years agoAuto merge of #57379 - petrochenkov:parsrecov, r=estebank
bors [Mon, 7 Jan 2019 01:05:45 +0000 (01:05 +0000)]
Auto merge of #57379 - petrochenkov:parsrecov, r=estebank

tests: Do not use `-Z parse-only`, continue compilation to test recovery

Make tests closer to reality!

The next step will be enabling `-Z continue-parse-after-error` by default and looking at the regressions.

A few instances of `-Z parse-only` are kept when it's appropriate, see e.g `ui/impl-trait/impl-trait-plus-priority.rs`, which tests mostly semantically wrong code and would generate too much useless noise if allowed to continue.

5 years agoAuto merge of #57344 - petrochenkov:regreach, r=arielb1
bors [Sun, 6 Jan 2019 22:26:16 +0000 (22:26 +0000)]
Auto merge of #57344 - petrochenkov:regreach, r=arielb1

privacy: Fix regression in impl reachability

Rollback to pre-https://github.com/rust-lang/rust/pull/56878 logic of determining reachability.
`reachability(impl Trait<Substs> for Type<Substs>) = reachability(Trait & Type)`, substs are ignored.

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

5 years agotests: Do not use `-Z parse-only`, continue compilation to test recovery
Vadim Petrochenkov [Sun, 6 Jan 2019 15:33:05 +0000 (18:33 +0300)]
tests: Do not use `-Z parse-only`, continue compilation to test recovery

5 years agoUpdate compiler_builtins 0.1.2 -> 0.1.4
akashfortanix [Fri, 4 Jan 2019 04:04:31 +0000 (09:34 +0530)]
Update compiler_builtins 0.1.2 -> 0.1.4

5 years agoAuto merge of #57272 - petrochenkov:featrecov, r=estebank
bors [Sun, 6 Jan 2019 15:40:58 +0000 (15:40 +0000)]
Auto merge of #57272 - petrochenkov:featrecov, r=estebank

Make sure feature gate errors are recoverable (take 2)

Continuation of https://github.com/rust-lang/rust/pull/56999/commits/15cefe4b2a65bb2a4febcd353cb37b90dfafa4f1.
Turns out I missed the most important part - the main feature gate checking pass.

5 years agoAuto merge of #57121 - glaubitz:flock-fixes, r=nagisa
bors [Sun, 6 Jan 2019 13:05:11 +0000 (13:05 +0000)]
Auto merge of #57121 - glaubitz:flock-fixes, r=nagisa

flock: Use fcntl constants directly from libc crate on Unix targets

Since the values for the fcntl constants can vary from architecture
to architecture, it is better to use the values defined in the libc
crate instead of assigning literals in the flock code which would
make the assumption that all architectures use the same values.

Fixes #57007

5 years agoFix CI failures
Vadim Petrochenkov [Sun, 6 Jan 2019 12:35:39 +0000 (15:35 +0300)]
Fix CI failures

5 years agoMake sure feature gate errors are recoverable (take 2)
Vadim Petrochenkov [Wed, 2 Jan 2019 14:14:24 +0000 (17:14 +0300)]
Make sure feature gate errors are recoverable (take 2)

5 years agoflock: Use fcntl constants directly from libc crate on Unix targets
John Paul Adrian Glaubitz [Sun, 6 Jan 2019 10:02:30 +0000 (11:02 +0100)]
flock: Use fcntl constants directly from libc crate on Unix targets

Since the values for the fcntl constants can vary from architecture
to architecture, it is better to use the values defined in the libc
crate instead of assigning literals in the flock code which would
make the assumption that all architectures use the same values.

Fixes #57007

5 years agoAuto merge of #57291 - euclio:method-call-suggestion, r=estebank
bors [Sun, 6 Jan 2019 10:30:05 +0000 (10:30 +0000)]
Auto merge of #57291 - euclio:method-call-suggestion, r=estebank

use structured suggestion for method calls

Furthermore, don't suggest calling the method if it is part of a place
expression, as this is invalid syntax.

I'm thinking it might be worth putting a label on the method assignment span like "this is a method" and removing the span from the "methods are immutable" text so it isn't reported twice.

The suggestions in `src/test/ui/did_you_mean/issue-40396.stderr` are suboptimal. I could check if the containing expression is `BinOp`, but I'm not sure if that's general enough. Any ideas?

r? @estebank

5 years agoUpdate libc to 0.2.46
John Paul Adrian Glaubitz [Sun, 6 Jan 2019 10:01:42 +0000 (11:01 +0100)]
Update libc to 0.2.46

5 years agoAuto merge of #57287 - alexcrichton:fix-jemalloc, r=nikomatsakis
bors [Sun, 6 Jan 2019 07:48:16 +0000 (07:48 +0000)]
Auto merge of #57287 - alexcrichton:fix-jemalloc, r=nikomatsakis

rustc: Fix regression where jemalloc isn't used

In #56986 the linkage of jemalloc to the compiler was switched from the
driver library to the rustc binary to ensure that only rustc itself uses
jemalloc. In doing so, however, it turns out jemalloc wasn't actually
linked in at all! None of the symbols were referenced so the static
library wasn't used. This means that jemalloc wasn't pulled in at all.

This commit performs a bit of a dance to reference jemalloc symbols,
attempting to pull it in despite LLVM's optimizations.

Closes #57115

5 years agoAuto merge of #57263 - ishitatsuyuki:bump-openssl, r=sfackler
bors [Sun, 6 Jan 2019 05:08:59 +0000 (05:08 +0000)]
Auto merge of #57263 - ishitatsuyuki:bump-openssl, r=sfackler

Upgrade openssl and openssl-sys

Fix #57169

5 years agoAuto merge of #57286 - alexcrichton:less-thin-2-2, r=nikomatsakis
bors [Sun, 6 Jan 2019 02:26:20 +0000 (02:26 +0000)]
Auto merge of #57286 - alexcrichton:less-thin-2-2, r=nikomatsakis

bootstrap: Link LLVM as a dylib with ThinLTO (take 2)

When building a distributed compiler on Linux where we use ThinLTO to
create the LLVM shared object this commit switches the compiler to
dynamically linking that LLVM artifact instead of statically linking to
LLVM. The primary goal here is to reduce CI compile times, avoiding two+
ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll
reuse the one ThinLTO step done by LLVM's build itself.

Lots of discussion about this change can be found [here] and down. A
perf run will show whether this is worth it or not!

[here]: https://github.com/rust-lang/rust/pull/53245#issuecomment-417015334

---

This PR previously landed in https://github.com/rust-lang/rust/pull/56944, caused https://github.com/rust-lang/rust/issues/57111, and was reverted in https://github.com/rust-lang/rust/pull/57116. I've added one more commit here which should fix the breakage that we saw.

5 years agoUpgrade openssl and openssl-sys
Tatsuyuki Ishi [Wed, 2 Jan 2019 10:06:36 +0000 (19:06 +0900)]
Upgrade openssl and openssl-sys

5 years agoRemove unused code
Shotaro Yamada [Sun, 6 Jan 2019 01:08:11 +0000 (10:08 +0900)]
Remove unused code

5 years agoAddress review comments
Vadim Petrochenkov [Sat, 5 Jan 2019 20:46:04 +0000 (23:46 +0300)]
Address review comments

5 years agoAuto merge of #57230 - estebank:return-mismatch, r=varkor
bors [Sat, 5 Jan 2019 22:25:47 +0000 (22:25 +0000)]
Auto merge of #57230 - estebank:return-mismatch, r=varkor

Modify mismatched type error for functions with no return

Fix #50009.

```
error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:3:24
   |
LL | fn plus_one(x: i32) -> i32 { //~ ERROR mismatched types
   |    --------            ^^^ expected i32, found ()
   |    |
   |    this function's body doesn't return
LL |     x + 1;
   |          - help: consider removing this semicolon
   |
   = note: expected type `i32`
              found type `()`
```

instead of

```
error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:3:28
   |
LL |   fn plus_one(x: i32) -> i32 { //~ ERROR mismatched types
   |  ____________________________^
LL | |     x + 1;
   | |          - help: consider removing this semicolon
LL | | }
   | |_^ expected i32, found ()
   |
   = note: expected type `i32`
              found type `()`
```

5 years agoprivacy: Mark everything in a header of a reachable impl as reachable
Vadim Petrochenkov [Sat, 5 Jan 2019 18:56:49 +0000 (21:56 +0300)]
privacy: Mark everything in a header of a reachable impl as reachable

5 years agoprivacy: Fix regression in impl reachability
Vadim Petrochenkov [Fri, 4 Jan 2019 18:30:54 +0000 (21:30 +0300)]
privacy: Fix regression in impl reachability

5 years agoAuto merge of #57354 - kennytm:rollup, r=kennytm
bors [Sat, 5 Jan 2019 17:39:59 +0000 (17:39 +0000)]
Auto merge of #57354 - kennytm:rollup, r=kennytm

Rollup of 17 pull requests

Successful merges:

 - #57219 (Remove some unused code)
 - #57229 (Fix #56806 by using `delay_span_bug` in object safety layout sanity checks)
 - #57233 (Rename and fix nolink-with-link-args test)
 - #57238 (Fix backtraces for inlined functions on Windows)
 - #57249 (Fix broken links to second edition TRPL.)
 - #57267 (src/jemalloc is gone, remove its mention from COPYRIGHT)
 - #57273 (Update the stdsimd submodule)
 - #57278 (Add Clippy to config.toml.example)
 - #57295 (Fix 'be be' constructs)
 - #57311 (VaList::copy should not require a mutable ref)
 - #57312 (`const fn` is no longer coming soon (const keyword docs))
 - #57313 (Improve Box<T> -> Pin<Box<T>> conversion)
 - #57314 (Fix repeated word typos)
 - #57326 (Doc rewording, use the same name `writer`)
 - #57338 (rustdoc: force binary filename for compiled doctests)
 - #57342 (librustc_mir: Make qualify_min_const_fn module public)
 - #57343 (Calculate privacy access only via query)

Failed merges:

 - #57340 (Use correct tracking issue for c_variadic)

r? @ghost

5 years agoRollup merge of #57343 - Xanewok:querify-access-levels, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:57:06 +0000 (23:57 +0800)]
Rollup merge of #57343 - Xanewok:querify-access-levels, r=nikomatsakis

Calculate privacy access only via query

Initially converted to query in https://github.com/rust-lang/rust/commit/a9f6babcda1479f4e5566d1aadbf9a0d99aa3182 and then changed to respect dependencies https://github.com/rust-lang/rust/commit/8281e883dd12260f00ce650aa8824507d9c447af.

I did this as an effort to prune `CrateAnalysis` from librustc_save_analysis, with the only thing remaining being the glob map (`name` is unused, existing `crate_name` is exposed in the compiler passes, instead).

Since calculating the glob map is opt-in, it'd be great if we could calculate that on-demand. However, it seems that it'd require converting resolution to queries, which I'm not sure how to do yet.

In an effort to get rid of `CrateAnalysis` altogether, could we try unconditionally calculating the glob_map in the resolver, thus completely removing `CrateAnalysis` struct, and doing a perf run?

r? @nikomatsakis

cc @petrochenkov do you have any idea how/if at all could we querify the resolver? I've stumbled upon a comment that's ~3? years old at the moment, so I'm guessing things might have changed and it actually may be feasible now. https://github.com/rust-lang/rust/blob/fe0c10019d7ee96909cc42cc265ef999a6b5dd70/src/librustc_driver/driver.rs#L589-L593

5 years agoRollup merge of #57342 - phansch:make_public, r=Centril
kennytm [Sat, 5 Jan 2019 15:57:04 +0000 (23:57 +0800)]
Rollup merge of #57342 - phansch:make_public, r=Centril

librustc_mir: Make qualify_min_const_fn module public

Trying to write a `const_fn` lint for Clippy. @oli-obk suggested
[here][link] to use the `is_min_const_fn` function from the
`qualify_min_const_fn` module. However, the module is currently private
and this commit makes it public.

I lack any historical knowledge of the development of the `const_fn`
feature, so I'm not sure if it was private on purpose or not. fwiw, all
modules are already public except `qualify_min_const_fn`.

r? @oli-obk

[link]: https://github.com/rust-lang/rust-clippy/issues/2440#issuecomment-446109978

5 years agoRollup merge of #57338 - QuietMisdreavus:doctest-file-name, r=GuillaumeGomez
kennytm [Sat, 5 Jan 2019 15:57:02 +0000 (23:57 +0800)]
Rollup merge of #57338 - QuietMisdreavus:doctest-file-name, r=GuillaumeGomez

rustdoc: force binary filename for compiled doctests

Fixes https://github.com/rust-lang/rust/issues/57317, needed for https://github.com/rust-lang/rust-by-example/issues/1137

Right now, when building a doctest, rustdoc provides the compiler an output directory (a temp dir) but lets the compiler name the executable. If the doctest needs to be executed, it then tries to run a binary named `rust_out` from that directory. For the most part, this works fine. However, if the doctest sets its own crate name, the compiler uses that name for the output binary instead. This causes rustdoc to try to execute a nonexistent binary, causing the test to fail.

This PR changes the paths rustdoc gives to the compiler when building doctests to force the output *filename* instead of just the *directory*.

5 years agoRollup merge of #57326 - king6cong:doc, r=rkruppe
kennytm [Sat, 5 Jan 2019 15:57:01 +0000 (23:57 +0800)]
Rollup merge of #57326 - king6cong:doc, r=rkruppe

Doc rewording, use the same name `writer`

None

5 years agoRollup merge of #57314 - wiktorkuchta:master, r=Centril
kennytm [Sat, 5 Jan 2019 15:56:59 +0000 (23:56 +0800)]
Rollup merge of #57314 - wiktorkuchta:master, r=Centril

Fix repeated word typos

Inspired by #57295 (I skipped 'be be' because of it) and my [PR in another repo
](https://github.com/e-maxx-eng/e-maxx-eng/pull/389)
Not a stupid `sed`, I actually tried to fix case by case.

5 years agoRollup merge of #57313 - Nemo157:box-to-pin, r=cramertj
kennytm [Sat, 5 Jan 2019 15:56:58 +0000 (23:56 +0800)]
Rollup merge of #57313 - Nemo157:box-to-pin, r=cramertj

Improve Box<T> -> Pin<Box<T>> conversion

I found the `From` trait conversion for this very hard to find, having a named function for it is much more discoverable. Also fixes #56256 as I need that in the place I'm using this.

Has a placeholder tracking issue, will file an issue once I get feedback.

5 years agoRollup merge of #57312 - Mendess2526:master, r=Centril
kennytm [Sat, 5 Jan 2019 15:56:56 +0000 (23:56 +0800)]
Rollup merge of #57312 - Mendess2526:master, r=Centril

`const fn` is no longer coming soon (const keyword docs)

The `const` keyword [documentation](https://doc.rust-lang.org/std/keyword.const.html) mentions that `const fn`s are coming soon, but they have already been added.

5 years agoRollup merge of #57311 - dlrobertson:fix_valist_copy, r=KodrAus
kennytm [Sat, 5 Jan 2019 15:56:55 +0000 (23:56 +0800)]
Rollup merge of #57311 - dlrobertson:fix_valist_copy, r=KodrAus

VaList::copy should not require a mutable ref

`VaList::copy` does not need to take a mutable reference. The `va_copy`
intrinsic takes a immutable reference.

5 years agoRollup merge of #57295 - d-e-s-o:topic/be-be, r=zackmdavis
kennytm [Sat, 5 Jan 2019 15:56:53 +0000 (23:56 +0800)]
Rollup merge of #57295 - d-e-s-o:topic/be-be, r=zackmdavis

Fix 'be be' constructs

I noticed a duplicated "be" somewhere in the code. A search for it
manifested a couple more locations with the same problem. This change
removes one of the "be"s.

5 years agoRollup merge of #57278 - mati865:config_clippy, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:52 +0000 (23:56 +0800)]
Rollup merge of #57278 - mati865:config_clippy, r=alexcrichton

Add Clippy to config.toml.example

Omitted in https://github.com/rust-lang/rust/pull/51122

The order is based on https://github.com/rust-lang/rust/blob/ec194646fef1a467073ad74b8b68f6f202cfce97/src/bootstrap/install.rs#L212

5 years agoRollup merge of #57273 - alexcrichton:update-stdsimd, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:56:51 +0000 (23:56 +0800)]
Rollup merge of #57273 - alexcrichton:update-stdsimd, r=nikomatsakis

Update the stdsimd submodule

Add a new cmpxchg16b intrinsics for x86_64 and some corrections for ARM/AArch64

5 years agoRollup merge of #57267 - rust-lang:SimonSapin-patch-1, r=varkor
kennytm [Sat, 5 Jan 2019 15:56:49 +0000 (23:56 +0800)]
Rollup merge of #57267 - rust-lang:SimonSapin-patch-1, r=varkor

src/jemalloc is gone, remove its mention from COPYRIGHT

The `src/jemalloc` submodule was removed in 61e89446ef6e115630faa75c985c599d739f7586 / https://github.com/rust-lang/rust/pull/55238.

5 years agoRollup merge of #57249 - frewsxcv:frewsxcv-second-edition, r=KodrAus
kennytm [Sat, 5 Jan 2019 15:56:48 +0000 (23:56 +0800)]
Rollup merge of #57249 - frewsxcv:frewsxcv-second-edition, r=KodrAus

Fix broken links to second edition TRPL.

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

Remove `second-edition/` from TRPL hyperlinks.

5 years agoRollup merge of #57238 - Zoxc:bt-fix, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:47 +0000 (23:56 +0800)]
Rollup merge of #57238 - Zoxc:bt-fix, r=alexcrichton

Fix backtraces for inlined functions on Windows

Fixes an regression introduced in https://github.com/rust-lang/rust/pull/50526

r? @alexcrichton

5 years agoRollup merge of #57233 - Smibu:rename-and-fix-nolink-test, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:46 +0000 (23:56 +0800)]
Rollup merge of #57233 - Smibu:rename-and-fix-nolink-test, r=alexcrichton

Rename and fix nolink-with-link-args test

There are three problems with the nolink-with-link-args test:

* The test fails when using MSVC. It's caused by the `linker-flavor=ld` flag which was added in #46291.
* In its comment, this test tests that "link_args are indeed passed when nolink is specified", but the `nolink` attribute has been removed [a long time ago](https://github.com/rust-lang/rust/pull/12826).
* Pattern has a small typo.

At first I was going to completely remove this test, but there is [a closed pull request for that](https://github.com/rust-lang/rust/pull/21090).

So:

* rename the file as suggested in the closed PR
* adjust the comment
* fix typo in the pattern
* add `ignore-msvc`.

r? @alexcrichton

5 years agoRollup merge of #57229 - mikeyhew:fix-56806, r=varkor
kennytm [Sat, 5 Jan 2019 15:56:44 +0000 (23:56 +0800)]
Rollup merge of #57229 - mikeyhew:fix-56806, r=varkor

Fix #56806 by using `delay_span_bug` in object safety layout sanity checks

It's possible that `is_object_safe` is called on a trait method that with an invalid receiver type. This caused an ICE in #56806, because `receiver_is_dispatchable` returns `true` for `self: Box<dyn Trait>`, which causes one of the layout sanity checks in object_safety.rs to fail. Replacing `bug!` with `delay_span_bug` solves this.

The fact that `receiver_is_dispatchable` returns `true` here could be considered a bug. It passes the check that the method implements, though: `Box<dyn Trait>` implements `DispatchFromDyn<Box<dyn Trait>>` because `dyn Trait` implements `Unsize<dyn Trait>`. It would be good to hear what @eddyb and @nikomatsakis think.

Note that I only added a test for the case encountered in #56806. I could not come up with a case that triggered an ICE from the other check, `bug!("receiver when Self = dyn Trait should be ScalarPair, found Scalar")`. There is no way, to my knowledge, that you can make `receiver_is_dispatchable` return true but still have a `Scalar` ABI when `Self = dyn Trait`.

One other case I encountered while debugging #56806 was that if you have a type parameter `T` that implements `Deref<Target=Self>` and `DispatchFromDyn<T>`, and use it as a method receiver, it will cause an ICE during `is_object_safe` because `T` has no layout ([playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=d9b7497b3be0ca8382fa7d9497263214)):

```rust
trait Trait<T: Deref<Target=Self> + DispatchFromDyn<T>> {
    fn foo(self: T) -> dyn Trait<T>;
}
```

I don't intend to remove the ICE there because it is a pathological case, especially since there is no way to implement `DispatchFromDyn<T>` for `T` — the checks in typeck/coherence/builtin.rs do not allow that.

fixes #56806
r? @varkor

5 years agoRollup merge of #57219 - matthewjasper:mir-cleanup, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:56:43 +0000 (23:56 +0800)]
Rollup merge of #57219 - matthewjasper:mir-cleanup, r=nikomatsakis

Remove some unused code

Closes #57096

5 years agoAuto merge of #57145 - RalfJung:panic-if-uninhabited, r=alexcrichton
bors [Sat, 5 Jan 2019 14:58:57 +0000 (14:58 +0000)]
Auto merge of #57145 - RalfJung:panic-if-uninhabited, r=alexcrichton

panic when calling MaybeUninhabited::into_inner on uninhabited type

I do this by adding an internal-only intrinsic `panic_if_uninhabited`. I have no idea what I am doing here, just mindlessly copying code around, so please review carefully!

5 years agoAuto merge of #57101 - o01eg:fix-57014, r=alexcrichton
bors [Sat, 5 Jan 2019 12:21:44 +0000 (12:21 +0000)]
Auto merge of #57101 - o01eg:fix-57014, r=alexcrichton

Search codegen backends based on target libdir instead of sysroot

Fixes #57014

Fixes cases with custom libdir when it consists of two or more parts.

5 years agoAuto merge of #57099 - davidtwco:issue-57098, r=nikomatsakis
bors [Sat, 5 Jan 2019 09:41:04 +0000 (09:41 +0000)]
Auto merge of #57099 - davidtwco:issue-57098, r=nikomatsakis

NLL: Add closure cannot be moved note.

Fixes #57098.

This PR extends existing logic for checking whether a closure that
is `FnOnce` and therefore moves variables that it captures from the
environment has already been invoked when being invoked again.

Now, this logic will also check whether the closure is being moved after
previously being moved or invoked and add an appropriate note.

r? @pnkfelix

5 years agoAuto merge of #56837 - arielb1:nonprincipal-trait-objects, r=nikomatsakis
bors [Sat, 5 Jan 2019 03:36:31 +0000 (03:36 +0000)]
Auto merge of #56837 - arielb1:nonprincipal-trait-objects, r=nikomatsakis

Add support for trait-objects without a principal

The hard-error version of #56481 - should be merged after we do something about the `traitobject` crate.

Fixes #33140.
Fixes #57057.

r? @nikomatsakis

5 years agoAuto merge of #56145 - weiznich:re_rebalance_coherence, r=nikomatsakis
bors [Sat, 5 Jan 2019 00:49:12 +0000 (00:49 +0000)]
Auto merge of #56145 - weiznich:re_rebalance_coherence, r=nikomatsakis

Implement the Re-rebalance coherence RFC

This is the first time I touch anything in the compiler so just tell me if I got something wrong.

Big thanks to @sgrif for the pointers where to look for those things.
cc #55437

5 years agouse `delay_span_bug` instead of `bug!` when doing layout sanity check
Michael Hewson [Wed, 19 Dec 2018 23:27:58 +0000 (18:27 -0500)]
use `delay_span_bug` instead of `bug!` when doing layout sanity check

It's possible that `is_object_safe` is called on a trait that is ill-formed, and we shouldn't ICE unless there are no errors being raised. Using `delay_span_bug` solves this.

fixes #56806

5 years agoAuto merge of #56079 - mark-i-m:patch-1, r=nikomatsakis
bors [Fri, 4 Jan 2019 22:14:13 +0000 (22:14 +0000)]
Auto merge of #56079 - mark-i-m:patch-1, r=nikomatsakis

Link to rustc guide

As proposed in https://github.com/rust-lang-nursery/rustc-guide/issues/239

5 years agoadd test for #57162
Ariel Ben-Yehuda [Fri, 4 Jan 2019 19:53:00 +0000 (21:53 +0200)]
add test for #57162

Fixes #57162.

5 years agoadd some debug logging to collect
Ariel Ben-Yehuda [Fri, 4 Jan 2019 13:27:55 +0000 (15:27 +0200)]
add some debug logging to collect

5 years agoAuto merge of #56897 - euclio:parse-fatal, r=estebank
bors [Fri, 4 Jan 2019 19:39:24 +0000 (19:39 +0000)]
Auto merge of #56897 - euclio:parse-fatal, r=estebank

make `panictry!` private to libsyntax

This commit completely removes usage of the `panictry!` macro from
outside libsyntax. The macro causes parse errors to be fatal, so using
it in libsyntax_ext caused parse failures *within* a syntax extension to
be fatal, which is probably not intended.

Furthermore, this commit adds spans to diagnostics emitted by empty
extensions if they were missing, à la #56491.

5 years agolibrustc_mir: Make qualify_min_const_fn module public
Philipp Hansch [Fri, 4 Jan 2019 19:13:24 +0000 (20:13 +0100)]
librustc_mir: Make qualify_min_const_fn module public

Trying to write a `const_fn` lint for Clippy. @oli-obk suggested
[here][link] to use the `is_min_const_fn` function from the
`qualify_min_const_fn` module. However, the module is currently private
and this commit makes it public.

I lack any historical knowledge of the development of the `const_fn`
feature, so I'm not sure if it was private on purpose or not. fwiw, all
modules are already public except `qualify_min_const_fn`.

[link]: https://github.com/rust-lang/rust-clippy/issues/2440#issuecomment-446109978

5 years agoreview comments
Esteban Küber [Fri, 4 Jan 2019 19:17:23 +0000 (11:17 -0800)]
review comments

5 years agoRemove unused name from CrateAnalysis
Igor Matuszewski [Fri, 4 Jan 2019 19:01:01 +0000 (20:01 +0100)]
Remove unused name from CrateAnalysis

5 years agoReplace CrateAnalysis::access_levels with query
Igor Matuszewski [Fri, 4 Jan 2019 16:23:39 +0000 (17:23 +0100)]
Replace CrateAnalysis::access_levels with query

5 years agoFix repeated word in astconv.rs
wiktorkuchta [Fri, 4 Jan 2019 17:50:53 +0000 (17:50 +0000)]
Fix repeated word in astconv.rs

5 years agoUpdate src/librustc/ty/fold.rs
Artem Varaksa [Fri, 4 Jan 2019 17:49:35 +0000 (17:49 +0000)]
Update src/librustc/ty/fold.rs

Co-Authored-By: wiktorkuchta <35867657+wiktorkuchta@users.noreply.github.com>
5 years agoAuto merge of #56723 - oli-obk:lazy_const, r=nikomatsakis
bors [Fri, 4 Jan 2019 17:01:24 +0000 (17:01 +0000)]
Auto merge of #56723 - oli-obk:lazy_const, r=nikomatsakis

Don't emit `Unevaluated` from `const_eval`

cc @eddyb @RalfJung

5 years agoforce binary filename for compiled doctests
QuietMisdreavus [Fri, 4 Jan 2019 15:57:17 +0000 (09:57 -0600)]
force binary filename for compiled doctests

5 years agoBump stage0
Eric Huss [Fri, 4 Jan 2019 15:30:20 +0000 (07:30 -0800)]
Bump stage0

5 years agoAuto merge of #56074 - matthewjasper:forbid-recursive-impl-trait, r=nikomatsakis
bors [Fri, 4 Jan 2019 14:21:19 +0000 (14:21 +0000)]
Auto merge of #56074 - matthewjasper:forbid-recursive-impl-trait, r=nikomatsakis

Forbid recursive impl trait

There is no type T, such that `T = [T; 2]`, but impl Trait could sometimes
be to circumvented this.

This patch makes it a hard error for an opaque type to resolve to such a
"type". Before this can be merged it needs

- [x] A better error message - it's good enough for now.
- [x] A crater run (?) to see if this any real-world code

closes #47659

5 years agoalphabetize marker traits when printed
Ariel Ben-Yehuda [Fri, 4 Jan 2019 13:09:09 +0000 (15:09 +0200)]
alphabetize marker traits when printed

This makes sure they are printed in a compiler-version-independent
order, avoiding ui test instability.

5 years agoAuto merge of #55986 - cjgillot:issue-45510, r=nikomatsakis
bors [Fri, 4 Jan 2019 11:51:30 +0000 (11:51 +0000)]
Auto merge of #55986 - cjgillot:issue-45510, r=nikomatsakis

Allow to dispatch fn traits depending on number of parameters

Hello,

By following @eddyb's advise on issue #45510, I managed to have the snippets of code in #45510 and #18952 passing without breaking older diagnostics.

EDIT: the codegen tests breakage I experienced is due to the poor quality of my laptop.

If any kind reviewer has any advice, you are very welcome.

5 years agoUpdate tests changed by rebase
Georg Semmler [Fri, 4 Jan 2019 09:19:22 +0000 (10:19 +0100)]
Update tests changed by rebase

5 years agoAuto merge of #57315 - ehuss:update-cargo, r=alexcrichton
bors [Fri, 4 Jan 2019 09:10:13 +0000 (09:10 +0000)]
Auto merge of #57315 - ehuss:update-cargo, r=alexcrichton

Update cargo

24 commits in 0d1f1bbeabd5b43a7f3ecfa16540af8e76d5efb4..34320d212dca8cd27d06ce93c16c6151f46fcf2e
2018-12-19 14:45:14 +0000 to 2019-01-03 19:12:38 +0000
- Display environment variables for rustc commands (rust-lang/cargo#6492)
- Fix a very minor race condition in `cargo fix`. (rust-lang/cargo#6515)
- Add a high-level overview of how `fix` works. (rust-lang/cargo#6516)
- Add dependency `registry` to `cargo metadata`. (rust-lang/cargo#6500)
- Fix fingerprint calculation for patched deps. (rust-lang/cargo#6493)
- serialize version directly (rust-lang/cargo#6512)
- use DYLD_FALLBACK_LIBRARY_PATH for dylib_path_envvar on macOS (rust-lang/cargo#6355)
- Fix error message when resolving dependencies (rust-lang/cargo#6510)
- use PathBuf in cargo metadata (rust-lang/cargo#6511)
- Fixed link to testsuite in CONTRIBUTING.md (rust-lang/cargo#6506)
- Update display of contents of Cargo.toml (rust-lang/cargo#6501)
- Update display of contents of Cargo.toml (rust-lang/cargo#6502)
- Fixup cargo install's help message (rust-lang/cargo#6495)
- testsuite: Require failing commands to check output. (rust-lang/cargo#6497)
- Delete unnecessary 'return' (rust-lang/cargo#6496)
- Fix new unused patch warning. (rust-lang/cargo#6494)
- Some minor documentation changes. (rust-lang/cargo#6481)
- Add `links` to `cargo metadata`. (rust-lang/cargo#6480)
- Salvaged semver work (rust-lang/cargo#6476)
- Warn on unused patches. (rust-lang/cargo#6470)
- don't write a an incorrect rustc version to the fingerprint file (rust-lang/cargo#6473)
- Rewrite `login` and registry cleanups. (rust-lang/cargo#6466)
- [issue#6461] Fix cargo commands list (rust-lang/cargo#6462)
- Restrict registry names to same style as package names. (rust-lang/cargo#6469)

5 years agoAuto merge of #56958 - alexcrichton:upgrade-docker, r=kennytm
bors [Fri, 4 Jan 2019 04:34:13 +0000 (04:34 +0000)]
Auto merge of #56958 - alexcrichton:upgrade-docker, r=kennytm

ci: Upgrade Travis to Xenial

In theory we shouldn't require trusty so long as docker continues to
work!

5 years agoDoc rewording, use the same name `writer`
king6cong [Fri, 4 Jan 2019 03:23:24 +0000 (11:23 +0800)]
Doc rewording, use the same name `writer`

5 years agoimplement a hack to make traitobject 0.1.0 compile
Ariel Ben-Yehuda [Thu, 3 Jan 2019 21:46:46 +0000 (23:46 +0200)]
implement a hack to make traitobject 0.1.0 compile

5 years agoRevert "add coherence future-compat warnings for marker-only trait objects"
Ariel Ben-Yehuda [Tue, 1 Jan 2019 21:53:52 +0000 (23:53 +0200)]
Revert "add coherence future-compat warnings for marker-only trait objects"

This reverts commit 760639635facb6c9a0926ac9278bcba71880b0b3.

5 years agoRevert "fix stupid bug"
Ariel Ben-Yehuda [Tue, 1 Jan 2019 21:22:37 +0000 (23:22 +0200)]
Revert "fix stupid bug"

This reverts commit 6e4b2b3ae79770c7ccfcdbfc90dc34fe47ec5f09.

5 years agoadd comment to <List<ExistentialPredicates>>::principal
Ariel Ben-Yehuda [Mon, 17 Dec 2018 22:50:58 +0000 (00:50 +0200)]
add comment to <List<ExistentialPredicates>>::principal

5 years agohack-fix to rustdoc
Ariel Ben-Yehuda [Sat, 15 Dec 2018 15:35:55 +0000 (17:35 +0200)]
hack-fix to rustdoc

5 years agoadd tests
Ariel Ben-Yehuda [Sat, 15 Dec 2018 01:21:00 +0000 (03:21 +0200)]
add tests

5 years agofix ppaux
Ariel Ben-Yehuda [Fri, 14 Dec 2018 23:52:50 +0000 (01:52 +0200)]
fix ppaux

5 years agoavoid giving a principal to marker-only trait objects
Ariel Ben-Yehuda [Tue, 4 Dec 2018 13:17:35 +0000 (15:17 +0200)]
avoid giving a principal to marker-only trait objects

Fixes #33140.

5 years agoadd support for principal-less trait object types
Ariel Ben-Yehuda [Tue, 4 Dec 2018 11:28:06 +0000 (13:28 +0200)]
add support for principal-less trait object types

should be a pure refactoring.

5 years agoForbid impl Trait from referring to unnamable recursive types
Matthew Jasper [Sun, 18 Nov 2018 18:33:44 +0000 (18:33 +0000)]
Forbid impl Trait from referring to unnamable recursive types

There is no type T, such that `T = [T; 2]`, we should not allow this
to be circumvented by impl Trait.

5 years agorustc: Fix regression where jemalloc isn't used
Alex Crichton [Wed, 2 Jan 2019 21:23:45 +0000 (13:23 -0800)]
rustc: Fix regression where jemalloc isn't used

In #56986 the linkage of jemalloc to the compiler was switched from the
driver library to the rustc binary to ensure that only rustc itself uses
jemalloc. In doing so, however, it turns out jemalloc wasn't actually
linked in at all! None of the symbols were referenced so the static
library wasn't used. This means that jemalloc wasn't pulled in at all.

This commit performs a bit of a dance to reference jemalloc symbols,
attempting to pull it in despite LLVM's optimizations.

Closes #57115

5 years agoMore test deduplication
Georg Semmler [Thu, 3 Jan 2019 12:25:49 +0000 (13:25 +0100)]
More test deduplication

5 years agoAdd missing files
Georg Semmler [Sat, 29 Dec 2018 01:13:06 +0000 (02:13 +0100)]
Add missing files

5 years agoFix typo
Georg Semmler [Fri, 28 Dec 2018 23:51:26 +0000 (00:51 +0100)]
Fix typo

5 years agoUnify tests
Georg Semmler [Fri, 28 Dec 2018 23:11:13 +0000 (00:11 +0100)]
Unify tests

Implement compile tests as variants of existing tests

5 years agoUpdate some new tests to changed error messages
Georg Semmler [Fri, 14 Dec 2018 14:06:03 +0000 (15:06 +0100)]
Update some new tests to changed error messages

5 years agoFix failing compile tests
Georg Semmler [Fri, 14 Dec 2018 11:18:29 +0000 (12:18 +0100)]
Fix failing compile tests

5 years agoDirectly check if input_ty is a type parameter and therefore a
Georg Semmler [Fri, 23 Nov 2018 09:45:17 +0000 (10:45 +0100)]
Directly check if input_ty is a type parameter and therefore a
uncoverd type

5 years agoUpdate src/doc/unstable-book/src/language-features/re-rebalance-coherence.md
varkor [Thu, 22 Nov 2018 22:00:19 +0000 (22:00 +0000)]
Update src/doc/unstable-book/src/language-features/re-rebalance-coherence.md

Co-Authored-By: weiznich <Georg_semmler_05@web.de>
5 years agoFix tidy
Georg Semmler [Wed, 21 Nov 2018 23:14:35 +0000 (00:14 +0100)]
Fix tidy

5 years agoAdd some docs about the new feature to the unstable book
Georg Semmler [Wed, 21 Nov 2018 20:37:09 +0000 (21:37 +0100)]
Add some docs about the new feature to the unstable book

5 years agoAdd some tests
Georg Semmler [Wed, 21 Nov 2018 20:35:56 +0000 (21:35 +0100)]
Add some tests

This copies and adjusts the existing coherence tests to ensure that
they continue to work using the new implementation.

5 years agoImplement the re-rebalance coherence rfc
Georg Semmler [Tue, 20 Nov 2018 22:37:19 +0000 (23:37 +0100)]
Implement the re-rebalance coherence rfc

5 years agoUpdate cargo
Eric Huss [Thu, 3 Jan 2019 20:59:54 +0000 (12:59 -0800)]
Update cargo

5 years agoDisplay `impl Sized` correctly
Matthew Jasper [Wed, 14 Nov 2018 22:24:22 +0000 (22:24 +0000)]
Display `impl Sized` correctly

It used to display as just `impl`

5 years agoFix repeated word typos
Wiktor Kuchta [Thu, 3 Jan 2019 20:27:50 +0000 (21:27 +0100)]
Fix repeated word typos

Found with `git grep -P '\b([a-z]+)\s+\1\b'`

5 years agoci: Upgrade Travis to Xenial
Alex Crichton [Tue, 18 Dec 2018 21:32:09 +0000 (13:32 -0800)]
ci: Upgrade Travis to Xenial

In theory we shouldn't require trusty so long as docker continues to
work!

5 years agoAdd discoverable function for converting Box<T> -> Pin<Box<T>>
Wim Looman [Thu, 3 Jan 2019 20:04:35 +0000 (21:04 +0100)]
Add discoverable function for converting Box<T> -> Pin<Box<T>>

5 years agoAllow converting Box<T: !Sized> -> Pin<Box<T>>
Wim Looman [Thu, 3 Jan 2019 20:03:29 +0000 (21:03 +0100)]
Allow converting Box<T: !Sized> -> Pin<Box<T>>

5 years agoconst fn no longer comming soon on const docs
Mendess2526 [Thu, 3 Jan 2019 19:23:25 +0000 (19:23 +0000)]
const fn no longer comming soon on const docs