]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoRollup merge of #53973 - tromey:prefer-rust-enabled-lldb, r=alexcrichton
kennytm [Sat, 8 Sep 2018 08:07:40 +0000 (16:07 +0800)]
Rollup merge of #53973 - tromey:prefer-rust-enabled-lldb, r=alexcrichton

Have rust-lldb look for the rust-enabled lldb

We're shipping a rust-enabled lldb, but the "lldb" executable is not
installed into the "bin" directory by rustup.  See the discussion in
https://github.com/rust-lang-nursery/rustup.rs/pull/1492 for
background on this decision.  There, we agreed to have rust-lldb
prefer the rust-enabled lldb if it is installed.  This patch changes
rust-lldb to look in the sysroot and use the lldb found there, if any.

See issue #48168

5 years agoRollup merge of #53942 - nnethercote:faster-precompute, r=nikomatsakis
kennytm [Sat, 8 Sep 2018 08:07:39 +0000 (16:07 +0800)]
Rollup merge of #53942 - nnethercote:faster-precompute, r=nikomatsakis

Rewrite `precompute_borrows_out_of_scope` for fewer hash table lookups.

It now does one hash table lookup per basic block, instead of one per
statement. This is worthwhile because this function is hot for NLL
builds of `ucd`.

I haven't measured the effect of this yet because I'm having trouble doing optimized builds of rustc that are suitable for profiling (#53916). I will do an online perf run instead.

r? @nikomatsakis

5 years agoRollup merge of #53932 - matthewjasper:remove-base-path, r=nikomatsakis
kennytm [Sat, 8 Sep 2018 08:07:38 +0000 (16:07 +0800)]
Rollup merge of #53932 - matthewjasper:remove-base-path, r=nikomatsakis

[NLL] Remove base_place

This function was supposed to make `Box` less special. But

* I think that the consensus is that MIR borrowck is going to fully special case `Box`
* It wasn't implemented correctly, it's looking at the type of the wrong `Place`, resulting in weird behaviour:

```rust
#![feature(nll)]
type A = Box<i32>; // If this is changed to another type then this will compile.

pub fn foo(x: Box<(String, A)>) {
    let a = x.0; // This will compile if these lines are swapped
    let b = x.1;
}
```

r? @nikomatsakis

5 years agoAuto merge of #51885 - GuillaumeGomez:trait-impl-show-docs, r=Mark-Simulacrum,QuietMi...
bors [Sat, 8 Sep 2018 04:14:54 +0000 (04:14 +0000)]
Auto merge of #51885 - GuillaumeGomez:trait-impl-show-docs, r=Mark-Simulacrum,QuietMisdreavus

Trait impl show docs

Fixes #51834.

<img width="1440" alt="screen shot 2018-06-29 at 00 14 33" src="https://user-images.githubusercontent.com/3050060/42063323-6e6e8cc8-7b31-11e8-88ef-4dd2229df76c.png">

(You can see both commit changes in the screenshot ðŸ˜„)

r? @QuietMisdreavus

5 years agoAuto merge of #53745 - nikomatsakis:nll-issue-53570, r=pnkfelix
bors [Fri, 7 Sep 2018 23:02:17 +0000 (23:02 +0000)]
Auto merge of #53745 - nikomatsakis:nll-issue-53570, r=pnkfelix

do not propagate closure requirements if we can prove them locally

Fixes #53570

cc @mikhail-m1 -- you're the one who last touched this code

r? @pnkfelix

5 years agoprint less info to stabilize tests
Niko Matsakis [Fri, 7 Sep 2018 17:35:16 +0000 (13:35 -0400)]
print less info to stabilize tests

5 years agoavoid propagating outlives obligations on locals if we can
Niko Matsakis [Mon, 27 Aug 2018 19:13:59 +0000 (15:13 -0400)]
avoid propagating outlives obligations on locals if we can

5 years agomove `annotate` onto a method of `UniversalRegions`
Niko Matsakis [Mon, 27 Aug 2018 19:10:05 +0000 (15:10 -0400)]
move `annotate` onto a method of `UniversalRegions`

This allows it to print out the "late-bound regions" from the closure
context more easily. Besides, all the state that is being printed it
is private to the `UniversalRegions`.

5 years agoregion_infer: rustfmt
Niko Matsakis [Mon, 27 Aug 2018 18:14:40 +0000 (14:14 -0400)]
region_infer: rustfmt

5 years agoregion_infer.rs: add some debug!
Niko Matsakis [Mon, 27 Aug 2018 18:14:26 +0000 (14:14 -0400)]
region_infer.rs: add some debug!

5 years agoAuto merge of #53327 - wesleywiser:wip_optimize_nll, r=nikomatsakis
bors [Fri, 7 Sep 2018 17:56:23 +0000 (17:56 +0000)]
Auto merge of #53327 - wesleywiser:wip_optimize_nll, r=nikomatsakis

[nll] teach SCC about `'static`

r? @nikomatsakis

I think this is right? I am seeing better performance on the `html5ever` benchmark but I'd like a perf run to quantify the exact speedup. There's a few ui tests failing due to changes in the error messages. The main issue seems to be that returns aren't being detected correctly?

`mir_check_cast_unsize.rs` before:

```
error: unsatisfied lifetime constraints
  --> mir_check_cast_unsize.rs:17:46
   |
17 |   fn bar<'a>(x: &'a u32) -> &'static dyn Debug {
   |  ________--____________________________________^
   | |        |
   | |        lifetime `'a` defined here
18 | |     //~^ ERROR unsatisfied lifetime constraints
19 | |     x
20 | |     //~^ WARNING not reporting region error due to nll
21 | | }
   | |_^ return requires that `'a` must outlive `'static`
```

`mir_check_cast_unsize.rs` after:

```
error: unsatisfied lifetime constraints
  --> mir_check_cast_unsize.rs:19:5
   |
17 | fn bar<'a>(x: &'a u32) -> &'static dyn Debug {
   |        -- lifetime `'a` defined here
18 |     //~^ ERROR unsatisfied lifetime constraints
19 |     x
   |     ^ cast requires that `'a` must outlive `'static`
```

5 years agoAuto merge of #53893 - petrochenkov:cfgexpr, r=pnkfelix
bors [Fri, 7 Sep 2018 15:14:52 +0000 (15:14 +0000)]
Auto merge of #53893 - petrochenkov:cfgexpr, r=pnkfelix

Validate syntax of `cfg` attributes

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

5 years agoHave rust-lldb look for the rust-enabled lldb
Tom Tromey [Wed, 5 Sep 2018 19:05:46 +0000 (13:05 -0600)]
Have rust-lldb look for the rust-enabled lldb

We're shipping a rust-enabled lldb, but the "lldb" executable is not
installed into the "bin" directory by rustup.  See the discussion in
https://github.com/rust-lang-nursery/rustup.rs/pull/1492 for
background on this decision.  There, we agreed to have rust-lldb
prefer the rust-enabled lldb if it is installed.

This patch changes dist.rs to put lldb into rustlib, following what
was done for the other LLVM tools in #53955, and then fixes rust-lldb
to prefer that lldb, if it exists.

See issue #48168

5 years agoAuto merge of #54021 - kennytm:rollup, r=kennytm
bors [Fri, 7 Sep 2018 12:48:20 +0000 (12:48 +0000)]
Auto merge of #54021 - kennytm:rollup, r=kennytm

Rollup of 17 pull requests

Successful merges:

 - #53299 (Updated core/macros.rs to note it works in a no_std environment.)
 - #53376 (Cross reference io::copy and fs::copy in docs.)
 - #53455 (Individual docs for {from,to}_*_bytes)
 - #53550 (librustc_lint: In recursion warning, change 'recurring' to 'recursing')
 - #53860 (Migrate (some) of run-pass/ to ui)
 - #53874 (Implement Unpin for Box, Rc, and Arc)
 - #53895 (tidy: Cleanups and clippy warning fixes)
 - #53946 (Clarify `ManuallyDrop` docs)
 - #53948 (Minimized clippy test from when NLL disabled two-phase borrows)
 - #53959 (Add .git extension to submodule paths missing it)
 - #53966 (A few cleanups and minor improvements to mir/dataflow)
 - #53967 (propagate build.python into cmake)
 - #53979 (Remove `#[repr(transparent)]` from atomics)
 - #53991 (Add unchecked_shl/shr check for intrinsics to fix miri's test suit)
 - #53992 (migrate run-pass/borrowck to ui/run-pass)
 - #53994 (migrate run-pass/*/ to ui/run-pass)
 - #54023 (update clippy submodule)

5 years agoRollup merge of #54023 - matthiaskrgr:clippy, r=oli-obk
kennytm [Fri, 7 Sep 2018 10:14:28 +0000 (18:14 +0800)]
Rollup merge of #54023 - matthiaskrgr:clippy, r=oli-obk

update clippy submodule

updates to cafef7b576203f166add9ed143979d9775c25219

5 years agoRollup merge of #53994 - pnkfelix:issue-53764-migrate-run-pass-dirs-to-ui, r=alexcrichton
kennytm [Fri, 7 Sep 2018 05:47:27 +0000 (13:47 +0800)]
Rollup merge of #53994 - pnkfelix:issue-53764-migrate-run-pass-dirs-to-ui, r=alexcrichton

migrate run-pass/*/ to ui/run-pass

I think this is all that remains of #53764

5 years agoRollup merge of #53992 - pnkfelix:issue-53764-migrate-run-pass-borrowck-to-ui, r...
kennytm [Fri, 7 Sep 2018 05:47:26 +0000 (13:47 +0800)]
Rollup merge of #53992 - pnkfelix:issue-53764-migrate-run-pass-borrowck-to-ui, r=nikomatsakis

migrate run-pass/borrowck to ui/run-pass

Part of #53764

5 years agoRollup merge of #53991 - TimDiekmann:fix-unchecked-intrinsics, r=oli-obk
kennytm [Fri, 7 Sep 2018 05:47:24 +0000 (13:47 +0800)]
Rollup merge of #53991 - TimDiekmann:fix-unchecked-intrinsics, r=oli-obk

Add unchecked_shl/shr check for intrinsics to fix miri's test suit

r? @RalfJung

cc @oli-obk

#53697 broke miri's test suite as described in [this comment](https://github.com/rust-lang/rust/pull/53697#issuecomment-419034668). This PR adds test for the `unchecked_shr/shl` for the intrinsics.

5 years agoRollup merge of #53979 - alexcrichton:remove-repr-transparent-atomics-master, r=sfackler
kennytm [Fri, 7 Sep 2018 05:47:23 +0000 (13:47 +0800)]
Rollup merge of #53979 - alexcrichton:remove-repr-transparent-atomics-master, r=sfackler

Remove `#[repr(transparent)]` from atomics

Added in #52149 the discussion in #53514 is showing how we may not want to
actually add this attribute to the atomic types. While we continue to
debate #53514 this commit reverts the addition of the `transparent` attribute.
This should be a more conservative route which leaves us the ability to tweak
this in the future but in the meantime allows us to continue discussion as well.

5 years agoRollup merge of #53967 - froydnj:cmake-python-executable, r=alexcrichton
kennytm [Fri, 7 Sep 2018 05:47:22 +0000 (13:47 +0800)]
Rollup merge of #53967 - froydnj:cmake-python-executable, r=alexcrichton

propagate build.python into cmake

If a suitable value of Python is not on `PATH`, one can still invoke x.py
manually, which propagates `BOOTSTRAP_PYTHON` into the bootstrap
environment.  But building LLVM will abort with error messages about not
being able to find Python, and instructions to set `PYTHON_EXECUTABLE`,
because nothing is done with `BOOTSTRAP_PYTHON` when invoking cmake.
Setting `build.python` in config.toml had no effect in this scenario,
either

To fix this, let's provide `PYTHON_EXECUTABLE` when invoking cmake; for
the "normal" case of Python in `PATH`, this doesn't alter any behavior.
For more unusual cases, however, this ensures cmake finds Python
properly.  (This change also ensures there are no differences between
what bootstrap is using, and what cmake uses, which may be useful for
consistency's sake.)

5 years agoRollup merge of #53966 - ljedrz:mir_dataflow_cleanups, r=estebank
kennytm [Fri, 7 Sep 2018 05:47:20 +0000 (13:47 +0800)]
Rollup merge of #53966 - ljedrz:mir_dataflow_cleanups, r=estebank

A few cleanups and minor improvements to mir/dataflow

- simplify `dot::GraphWalk::edges` and optimize its vector's allocation
- turn a `kill` loop into `kill_all`
- remove the `prepost` parameter from `dataflow_path` (it doesn't seem to do anything)
- a couple of other minor improvements

5 years agoRollup merge of #53959 - tlively:fix-submodules, r=alexcrichton
kennytm [Fri, 7 Sep 2018 05:47:19 +0000 (13:47 +0800)]
Rollup merge of #53959 - tlively:fix-submodules, r=alexcrichton

Add .git extension to submodule paths missing it

Fixes a problem where submodules could not be cloned under some git
configurations. Specifically, when url.git@github.com:.insteadOf =
https://github.com/ is set.

5 years agoRollup merge of #53948 - pnkfelix:issue-52934-minimize-clippy-test, r=wesleywiser
kennytm [Fri, 7 Sep 2018 05:47:18 +0000 (13:47 +0800)]
Rollup merge of #53948 - pnkfelix:issue-52934-minimize-clippy-test, r=wesleywiser

Minimized clippy test from when NLL disabled two-phase borrows

(Of course anyone even skimming the test will realize that this is an *expansion* of a previously posted [minimization](https://github.com/rust-lang/rust/issues/52934#issuecomment-418144787).)

Fix #52934.

5 years agoRollup merge of #53946 - tbu-:pr_doc_manuallydrop, r=cramertj
kennytm [Fri, 7 Sep 2018 05:47:17 +0000 (13:47 +0800)]
Rollup merge of #53946 - tbu-:pr_doc_manuallydrop, r=cramertj

Clarify `ManuallyDrop` docs

Mention that you can use `into_inner` to drop the contained value.

5 years agoAuto merge of #53830 - davidtwco:issue-53228, r=nikomatsakis
bors [Fri, 7 Sep 2018 09:57:27 +0000 (09:57 +0000)]
Auto merge of #53830 - davidtwco:issue-53228, r=nikomatsakis

Add help message for missing IndexMut impl with NLL

Fixes #53228.

r? @nikomatsakis

5 years agoRollup merge of #53895 - joshtriplett:tidy-tidy, r=nikomatsakis
kennytm [Fri, 7 Sep 2018 05:47:14 +0000 (13:47 +0800)]
Rollup merge of #53895 - joshtriplett:tidy-tidy, r=nikomatsakis

tidy: Cleanups and clippy warning fixes

This eliminates various clippy warnings in the tidy tool, as well as
making some related cleanups. These changes should not introduce any
functional differences.

5 years agoRollup merge of #53874 - withoutboats:pin-ptr-impls, r=RalfJung
kennytm [Fri, 7 Sep 2018 05:47:13 +0000 (13:47 +0800)]
Rollup merge of #53874 - withoutboats:pin-ptr-impls, r=RalfJung

Implement Unpin for Box, Rc, and Arc

Per the discussion in #49150, these should implement `Unpin` even if what they point to does not.

5 years agoRollup merge of #53860 - pnkfelix:issue-53764-migrate-run-pass-to-ui, r=nikomatsakis
kennytm [Fri, 7 Sep 2018 05:47:11 +0000 (13:47 +0800)]
Rollup merge of #53860 - pnkfelix:issue-53764-migrate-run-pass-to-ui, r=nikomatsakis

Migrate (some) of run-pass/ to ui

This is a step towards addressing #53764. Much still remains.

I went through a large portion of the `*.rs` files that were directly stored into `src/test/run-pass/` and moved them into various subdirectories of a newly created `src/test/ui/run-pass/`.

(yes, it would have perhaps been nice to meld it more directly with directories already in `src/test/ui/`; but the sad truth is that opens up the reality of filename collisions, and one of my short term goals for resolving #53764 is to keep the *filenames* invariant, even as their parents directories and contents are mildly revised...)

5 years agoRollup merge of #53550 - brson:recurring, r=estebank
kennytm [Fri, 7 Sep 2018 05:47:10 +0000 (13:47 +0800)]
Rollup merge of #53550 - brson:recurring, r=estebank

librustc_lint: In recursion warning, change 'recurring' to 'recursing'

The existing wording seems incorrect.

Aside: This warning, 'function cannot return without recursing' is not perfectly clear - it implies that the function _can_ return, it's just got to recurse. But really the fn cannot return period. Clearer wording: 'function recurses infinitely; it cannot return'; or 'function is infinitely self-recursive; it cannot return, and this is probably an error'. I like that.

5 years agoRollup merge of #53455 - llogiq:num-byte-conversion-docs, r=steveklabnik
kennytm [Fri, 7 Sep 2018 05:47:07 +0000 (13:47 +0800)]
Rollup merge of #53455 - llogiq:num-byte-conversion-docs, r=steveklabnik

Individual docs for {from,to}_*_bytes

5 years agoRollup merge of #53376 - frewsxcv:frewsxcv-copy, r=GuillaumeGomez
kennytm [Fri, 7 Sep 2018 05:47:06 +0000 (13:47 +0800)]
Rollup merge of #53376 - frewsxcv:frewsxcv-copy, r=GuillaumeGomez

Cross reference io::copy and fs::copy in docs.

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

5 years agoRollup merge of #53299 - MagnumOpus21:fix-macro-write, r=steveklabnik
kennytm [Fri, 7 Sep 2018 05:47:05 +0000 (13:47 +0800)]
Rollup merge of #53299 - MagnumOpus21:fix-macro-write, r=steveklabnik

Updated core/macros.rs to note it works in a no_std environment.

Fixes #45797
This PR updates the documentation of `write!` to note it works in a `no_std` environment, and adds an
example to showcase this. In a `no_std` environment, the author of the code is responsible for the
implementation of the `Write` trait. This example will work out of the box with `no_std`, but the
implementation of `Write` is expected to be provided by the user.

r? @steveklabnik

5 years agoupdate clippy submodule
Matthias Krüger [Fri, 7 Sep 2018 07:12:06 +0000 (09:12 +0200)]
update clippy submodule

updates to cafef7b576203f166add9ed143979d9775c25219

5 years agoAuto merge of #54018 - alexcrichton:omg-fix-again, r=Mark-Simulacrum
bors [Fri, 7 Sep 2018 04:18:07 +0000 (04:18 +0000)]
Auto merge of #54018 - alexcrichton:omg-fix-again, r=Mark-Simulacrum

Ship libLLVM.dylib on OSX

Previously we just weren't shipping this at all as we were only looking for the
Linux version!

5 years agoFix tests
Wesley Wiser [Fri, 7 Sep 2018 02:57:05 +0000 (22:57 -0400)]
Fix tests

5 years agoShip libLLVM.dylib on OSX
Alex Crichton [Fri, 7 Sep 2018 02:06:09 +0000 (19:06 -0700)]
Ship libLLVM.dylib on OSX

Previously we just weren't shipping this at all as we were only looking for the
Linux version!

5 years agoAuto merge of #53969 - alexcrichton:update-compiler-builtins, r=nikomatsakis
bors [Fri, 7 Sep 2018 01:52:24 +0000 (01:52 +0000)]
Auto merge of #53969 - alexcrichton:update-compiler-builtins, r=nikomatsakis

Update the compiler-builtins submodule

Fixes a mistake in using C shims to...

Closes #53916

5 years agoresolve_lifetime: types are not late-bound regions =)
Niko Matsakis [Thu, 6 Sep 2018 16:39:48 +0000 (12:39 -0400)]
resolve_lifetime: types are not late-bound regions =)

5 years agouniversal_regions.rs: rustfmt
Niko Matsakis [Thu, 6 Sep 2018 16:39:38 +0000 (12:39 -0400)]
universal_regions.rs: rustfmt

5 years agouseful debug in `universal_regions`
Niko Matsakis [Thu, 6 Sep 2018 16:39:27 +0000 (12:39 -0400)]
useful debug in `universal_regions`

5 years agoregion_name: rustfmt
Niko Matsakis [Thu, 6 Sep 2018 16:38:49 +0000 (12:38 -0400)]
region_name: rustfmt

5 years agoadd a useful debug to `give_region_a_name`
Niko Matsakis [Thu, 6 Sep 2018 16:38:15 +0000 (12:38 -0400)]
add a useful debug to `give_region_a_name`

5 years ago[nll] teach SCC about `'static`
Wesley Wiser [Mon, 27 Aug 2018 02:50:57 +0000 (22:50 -0400)]
[nll] teach SCC about `'static`

Fixes #53178

5 years ago[nll] Refactor the `Edges` iterator to return `OutlivesConstraints`
Wesley Wiser [Sat, 25 Aug 2018 03:11:44 +0000 (23:11 -0400)]
[nll] Refactor the `Edges` iterator to return `OutlivesConstraints`

Part of #53178

5 years agoAuto merge of #54005 - eddyb:uniform-paths-self-resolve, r=petrochenkov
bors [Thu, 6 Sep 2018 23:29:56 +0000 (23:29 +0000)]
Auto merge of #54005 - eddyb:uniform-paths-self-resolve, r=petrochenkov

rustc_resolve: allow `use crate_name;` under `uniform_paths`.

Specifically, `use crate_name;` and `use crate_name::{self, ...};` are now allowed, whereas previously there would produce a (false positive) ambiguity error, as the ambiguity detection code was seeing the `crate_name` import as a locally-available definition to conflict with the crate.

r? @petrochenkov cc @aturon @joshtriplett @Centril

5 years agoFix link
Guillaume Gomez [Sun, 12 Aug 2018 09:30:31 +0000 (11:30 +0200)]
Fix link

5 years agoDon't show default docs
Guillaume Gomez [Sat, 11 Aug 2018 09:52:44 +0000 (11:52 +0200)]
Don't show default docs

5 years agoFix invalid urls
Guillaume Gomez [Sun, 1 Jul 2018 16:51:39 +0000 (18:51 +0200)]
Fix invalid urls

5 years agoFix implementors generation as well
Guillaume Gomez [Sun, 1 Jul 2018 14:11:14 +0000 (16:11 +0200)]
Fix implementors generation as well

5 years agoFix hover on impls
Guillaume Gomez [Fri, 10 Aug 2018 17:36:08 +0000 (19:36 +0200)]
Fix hover on impls

5 years agoAuto merge of #53575 - matthewjasper:unsized-is-an-error, r=estebank
bors [Thu, 6 Sep 2018 21:02:35 +0000 (21:02 +0000)]
Auto merge of #53575 - matthewjasper:unsized-is-an-error, r=estebank

Don't reduce E0161 to a warning in NLL migrate mode

This error has been on stable for a while, and allowing such code cause the compile to later ICE (since we can't codegen it). Errors `box UNSIZED EXPR` with unsized locals because it's not compatible with the current evaluation order (create the box before evaluating the expressions).

cc #53469 (fixes the ICE in this case)
cc @qnighy

5 years agoFix typos.
Without Boats [Thu, 6 Sep 2018 19:31:06 +0000 (21:31 +0200)]
Fix typos.

5 years agorustc_resolve: allow `use crate_name;` under `uniform_paths`.
Eduard-Mihai Burtescu [Thu, 6 Sep 2018 19:07:56 +0000 (22:07 +0300)]
rustc_resolve: allow `use crate_name;` under `uniform_paths`.

5 years agoAuto merge of #52626 - brunocodutra:issue-52475, r=oli-obk
bors [Thu, 6 Sep 2018 17:35:40 +0000 (17:35 +0000)]
Auto merge of #52626 - brunocodutra:issue-52475, r=oli-obk

Fix issue #52475: Make loop detector only consider reachable memory

As [suggested](https://github.com/rust-lang/rust/pull/51702#discussion_r197585664) by @oli-obk `alloc_id`s should be ignored by traversing all `Allocation`s in interpreter memory at a given moment in time, beginning by `ByRef` locals in the stack.

- [x] Generalize the implementation of `Hash` for `EvalSnapshot` to traverse `Allocation`s
- [x] Generalize the implementation of `PartialEq` for `EvalSnapshot` to traverse `Allocation`s
- [x] Commit regression tests

Fixes #52626
Fixes https://github.com/rust-lang/rust/issues/52849

5 years agoUse binary_op_val instead of doing the check manually.
Tim [Thu, 6 Sep 2018 13:11:56 +0000 (15:11 +0200)]
Use binary_op_val instead of doing the check manually.

5 years agoAllow illegal_floating_point_literal_pattern. These will need to be updated at some...
Felix S. Klock II [Thu, 6 Sep 2018 12:54:11 +0000 (14:54 +0200)]
Allow illegal_floating_point_literal_pattern. These will need to be updated at some point.

Discussion can be found on rust-lang/rust#41620.

5 years agoAllow unions_with_drop_fields for unions with members with destructors
Felix S. Klock II [Thu, 6 Sep 2018 12:51:14 +0000 (14:51 +0200)]
Allow unions_with_drop_fields for unions with members with destructors

(or generics that *might* have dtors)

5 years agoAllow various name convention lints.
Felix S. Klock II [Thu, 6 Sep 2018 12:45:33 +0000 (14:45 +0200)]
Allow various name convention lints.

5 years agoAdd `// run-pass` to collection of tests.
Felix S. Klock II [Thu, 6 Sep 2018 12:41:12 +0000 (14:41 +0200)]
Add `// run-pass` to collection of tests.

5 years agoMigrated remaining `src/test/run-pass/` subdirectories to `src/test/ui/run-pass/`.
Felix S. Klock II [Thu, 6 Sep 2018 12:36:26 +0000 (14:36 +0200)]
Migrated remaining `src/test/run-pass/` subdirectories to `src/test/ui/run-pass/`.

5 years agoMove check out of the match on the intrinsic name
Tim [Thu, 6 Sep 2018 11:54:27 +0000 (13:54 +0200)]
Move check out of the match on the intrinsic name

5 years agoAllow some lints to let the ported run-pass/borrowck tests get through.
Felix S. Klock II [Thu, 6 Sep 2018 11:51:09 +0000 (13:51 +0200)]
Allow some lints to let the ported run-pass/borrowck tests get through.

5 years agoAdd `// run-pass` to collection of tests.
Felix S. Klock II [Tue, 4 Sep 2018 10:05:53 +0000 (12:05 +0200)]
Add `// run-pass` to collection of tests.

5 years agoMigrated `src/test/run-pass/borrowck` to `src/test/ui/run-pass`.
Felix S. Klock II [Mon, 3 Sep 2018 09:06:00 +0000 (11:06 +0200)]
Migrated `src/test/run-pass/borrowck` to `src/test/ui/run-pass`.

Just shuffling files here; the needed updates to content come later.

5 years agoAdd unchecked_shl/shr checks for intrinsics
Tim [Thu, 6 Sep 2018 11:13:07 +0000 (13:13 +0200)]
Add unchecked_shl/shr checks for intrinsics

5 years agoAllow more lints, mainly overflowing_literals for cases that only arose on 32-bit.
Felix S. Klock II [Tue, 4 Sep 2018 12:33:34 +0000 (14:33 +0200)]
Allow more lints, mainly overflowing_literals for cases that only arose on 32-bit.

5 years agoAdd `#![allow(stable_features)]` to ease review.
Felix S. Klock II [Fri, 31 Aug 2018 13:58:57 +0000 (15:58 +0200)]
Add `#![allow(stable_features)]` to ease review.

That is, opting to ignore stable `#![feature(..)]`, under my theory
that a reviewer would prefer as much stuff to be bucketed under "ah
another `#![allow(..)]` here." as possible.

5 years agoAdd `.stderr` file for test that appears to trigger a lint that cannot be silenced.
Felix S. Klock II [Fri, 31 Aug 2018 13:42:43 +0000 (15:42 +0200)]
Add `.stderr` file for test that appears to trigger a lint that cannot be silenced.

5 years agoAdd `.stdout` file for test of `log_syntax!` and `trace_macros!`.
Felix S. Klock II [Fri, 31 Aug 2018 13:42:16 +0000 (15:42 +0200)]
Add `.stdout` file for test of `log_syntax!` and `trace_macros!`.

5 years agoAllow uses of `#[unsafe_destructor_blind_to_params]`. Should be ported to `#[may_dang...
Felix S. Klock II [Fri, 31 Aug 2018 13:29:46 +0000 (15:29 +0200)]
Allow uses of `#[unsafe_destructor_blind_to_params]`. Should be ported to `#[may_dangle]`.

See rust-lang/rust#34761.

5 years agoAllow illegal_floating_point_literal_pattern. These will need to be updated at some...
Felix S. Klock II [Fri, 31 Aug 2018 13:28:26 +0000 (15:28 +0200)]
Allow illegal_floating_point_literal_pattern. These will need to be updated at some point.

Discussion can be found on rust-lang/rust#41620.

5 years agoUpdate line numbers to reflect added lines at beginning of tests.
Felix S. Klock II [Fri, 31 Aug 2018 13:26:17 +0000 (15:26 +0200)]
Update line numbers to reflect added lines at beginning of tests.

5 years agoAdd `.stderr` files for shadowed labels where the point of the test is to test such...
Felix S. Klock II [Fri, 31 Aug 2018 13:40:45 +0000 (15:40 +0200)]
Add `.stderr` files for shadowed labels where the point of the test is to test such cases.

5 years agoAlpha-rename label to avoid the shadowing lint (which cannot be silenced).
Felix S. Klock II [Fri, 31 Aug 2018 13:14:09 +0000 (15:14 +0200)]
Alpha-rename label to avoid the shadowing lint (which cannot be silenced).

5 years agoAdd `.stderr` file for test where there are conflicting repr hints.
Felix S. Klock II [Fri, 31 Aug 2018 13:41:48 +0000 (15:41 +0200)]
Add `.stderr` file for test where there are conflicting repr hints.

See rust-lang/rust#53857.

5 years agoAdd `#![allow(improper_ctypes)]` to extern-pass-empty.rs; note this test seems bogus.
Felix S. Klock II [Fri, 31 Aug 2018 13:04:24 +0000 (15:04 +0200)]
Add `#![allow(improper_ctypes)]` to extern-pass-empty.rs; note this test seems bogus.

that is, I suspect it should be retired because it is testing behavior
(namely a `#[repr(C)] struct Empty;`) that, if I understand correctly,
is undefined.

See also rust-lang/rust#53859.

5 years agoAdd `#[allow(improper_ctypes)]` to slew of cases that need e.g. `repr(C)`.
Felix S. Klock II [Fri, 31 Aug 2018 13:51:35 +0000 (15:51 +0200)]
Add `#[allow(improper_ctypes)]` to slew of cases that need e.g. `repr(C)`.

See also rust-lang/rust#53858.

5 years agoAdd `#![allow(..)]` for a slew of lints of migrated run-pass tests, to silence stderr...
Felix S. Klock II [Fri, 31 Aug 2018 13:02:01 +0000 (15:02 +0200)]
Add `#![allow(..)]` for a slew of lints of migrated run-pass tests, to silence stderr output.

5 years agoRemove references to a collection of unknown lints.
Felix S. Klock II [Fri, 31 Aug 2018 13:12:32 +0000 (15:12 +0200)]
Remove references to a collection of unknown lints.

5 years agoMove a bunch of auxiliary support files into `ui/run-pass/**/auxiliary`.
Felix S. Klock II [Fri, 31 Aug 2018 12:20:59 +0000 (14:20 +0200)]
Move a bunch of auxiliary support files into `ui/run-pass/**/auxiliary`.

5 years agoAdd `// run-pass` annotations to all the tests under `ui/run-pass/`.
Felix S. Klock II [Thu, 30 Aug 2018 12:18:55 +0000 (14:18 +0200)]
Add `// run-pass` annotations to all the tests under `ui/run-pass/`.

(I may have accidentally added it to some auxilliary crates as well;
my emacs-macro-based methodology was pretty crude.)

5 years agoMigrated slew of run-pass tests to various subdirectories of `ui/run-pass/`.
Felix S. Klock II [Thu, 30 Aug 2018 11:16:59 +0000 (13:16 +0200)]
Migrated slew of run-pass tests to various subdirectories of `ui/run-pass/`.

5 years agoAuto merge of #53707 - eddyb:phantom-waffles, r=oli-obk
bors [Thu, 6 Sep 2018 09:32:23 +0000 (09:32 +0000)]
Auto merge of #53707 - eddyb:phantom-waffles, r=oli-obk

rustc_typeck: turn `where Type:,` into a WF(Type) predicate, instead of ignoring it.

Fixes #53696, assuming crater doesn't catch anyone using this syntax already.

Allowing an empty list of bounds in the grammar was done for the benefit of macro authors, most of which would *probably* be using it for bounds on type parameters, which are always WF.

r? @nikomatsakis cc @petrochenkov

5 years agoAuto merge of #53721 - arielb1:exhaustively-unpun, r=nikomatsakis
bors [Thu, 6 Sep 2018 06:42:19 +0000 (06:42 +0000)]
Auto merge of #53721 - arielb1:exhaustively-unpun, r=nikomatsakis

fix `is_non_exhaustive` confusion between structs and enums

Structs and enums can both be non-exhaustive, with a very different
meaning. This PR splits `is_non_exhaustive` to 2 separate functions - 1
for structs, and another for enums, and fixes the places that got the
usage confused.

Fixes #53549.

r? @eddyb

5 years agoMerge branch 'master' into fix-submodules
Thomas Lively [Thu, 6 Sep 2018 04:40:39 +0000 (21:40 -0700)]
Merge branch 'master' into fix-submodules

5 years agoAuto merge of #53955 - alexcrichton:fix-dist-again, r=japaric
bors [Thu, 6 Sep 2018 02:09:12 +0000 (02:09 +0000)]
Auto merge of #53955 - alexcrichton:fix-dist-again, r=japaric

rustbuild: Tweak LLVM distribution layout

This commit tweaks the layout of a few components that we distribute to
hopefully fix across all platforms the recent issues with LLD being unable to
find the LLVM shared object. In #53245 we switched to building LLVM as a dynamic
library, which means that LLVM tools by default link to LLVM dynamically rather
than statically. This in turn means that the tools, at runtime, need to find the
LLVM shared library.

LLVM's shared library is currently distributed as part of the rustc component.
This library is located, however, at `$sysroot/lib`. The LLVM tools we ship are
in two locations:

* LLD is shipped at `$sysroot/lib/rustlib/$host/bin/rust-lld`
* Other LLVM tools are shipped at `$sysroot/bin`

Each LLVM tool has an embedded rpath directive indicating where it will search
for dynamic libraries. This currently points to `../lib` and is presumably
inserted by LLVM's build system. Unfortunately, though, this directive is only
correct for the LLVM tools at `$sysroot/bin`, not LLD!

This commit is targeted at fixing this situation by making two changes:

* LLVM tools other than LLD are moved in the distribution to
  `$sysroot/lib/rustlib/$host/bin`. This moves them next to LLD and should
  position them for...
* The LLVM shared object is moved to `$sysroot/lib/rustlib/$host/lib`

Together this means that all tools should natively be able to find the shared
object and the shared object should be installed all the time for the various
tools. Overall this should...

Closes #53813

5 years agoAuto merge of #52994 - varkor:trim_direction, r=alexcrichton
bors [Wed, 5 Sep 2018 23:45:08 +0000 (23:45 +0000)]
Auto merge of #52994 - varkor:trim_direction, r=alexcrichton

Add trim_start, trim_end etc.; deprecate trim_left, trim_right, etc. in future

Adds the methods: `trim_start`, `trim_end`, `trim_start_matches` and `trim_end_matches`.
Deprecates `trim_left`, `trim_right`, `trim_left_matches` and `trim_right_matches` starting from Rust 1.33.0, three versions from when they'll initially be marked as being deprecated, using the future deprecation from https://github.com/rust-lang/rust/issues/30785 and https://github.com/rust-lang/rust/pull/51681.

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

5 years agoValidate syntax of `--cfg` command line arguments
Vadim Petrochenkov [Wed, 5 Sep 2018 22:15:46 +0000 (01:15 +0300)]
Validate syntax of `--cfg` command line arguments

5 years agoRemove `#[repr(transparent)]` from atomics
Alex Crichton [Wed, 5 Sep 2018 22:37:39 +0000 (15:37 -0700)]
Remove `#[repr(transparent)]` from atomics

Added in #52149 the discussion in #53514 is showing how we may not want to
actually add this attribute to the atomic types. While we continue to
debate #53514 this commit reverts the addition of the `transparent` attribute.
This should be a more conservative route which leaves us the ability to tweak
this in the future but in the meantime allows us to continue discussion as well.

5 years agoValidate syntax of `cfg` attributes
Vadim Petrochenkov [Sat, 1 Sep 2018 21:13:22 +0000 (00:13 +0300)]
Validate syntax of `cfg` attributes

5 years agoAdd comment.
Without Boats [Wed, 5 Sep 2018 21:47:10 +0000 (23:47 +0200)]
Add comment.

5 years agoAuto merge of #53962 - michaelwoerister:close-thinlto-file-descriptors, r=alexcrichton
bors [Wed, 5 Sep 2018 20:52:42 +0000 (20:52 +0000)]
Auto merge of #53962 - michaelwoerister:close-thinlto-file-descriptors, r=alexcrichton

ThinLTO: Don't keep files open after mmaping them.

Fixes #53947.

r? @alexcrichton

5 years agoAuto merge of #53951 - tromey:restore-lldb-build, r=alexcrichton
bors [Wed, 5 Sep 2018 18:11:27 +0000 (18:11 +0000)]
Auto merge of #53951 - tromey:restore-lldb-build, r=alexcrichton

Restore lldb build

commit 6c10142251 ("Update LLVM submodule") disabled the lldb build.
This patch updates the lldb and clang submodules to once again build
against the LLVM that is included in the Rust tree, and reverts the
.travis.yml changes from that patch.

5 years agoIndividual docs for {from,to}_*_bytes
Andre Bogus [Fri, 17 Aug 2018 20:20:09 +0000 (22:20 +0200)]
Individual docs for {from,to}_*_bytes

5 years agoPick up State.h include path change
Tom Tromey [Wed, 5 Sep 2018 16:37:05 +0000 (10:37 -0600)]
Pick up State.h include path change

5 years agorustbuild: Tweak LLVM distribution layout
Alex Crichton [Tue, 4 Sep 2018 19:57:27 +0000 (12:57 -0700)]
rustbuild: Tweak LLVM distribution layout

This commit tweaks the layout of a few components that we distribute to
hopefully fix across all platforms the recent issues with LLD being unable to
find the LLVM shared object. In #53245 we switched to building LLVM as a dynamic
library, which means that LLVM tools by default link to LLVM dynamically rather
than statically. This in turn means that the tools, at runtime, need to find the
LLVM shared library.

LLVM's shared library is currently distributed as part of the rustc component.
This library is located, however, at `$sysroot/lib`. The LLVM tools we ship are
in two locations:

* LLD is shipped at `$sysroot/lib/rustlib/$host/bin/rust-lld`
* Other LLVM tools are shipped at `$sysroot/bin`

Each LLVM tool has an embedded rpath directive indicating where it will search
for dynamic libraries. This currently points to `../lib` and is presumably
inserted by LLVM's build system. Unfortunately, though, this directive is only
correct for the LLVM tools at `$sysroot/bin`, not LLD!

This commit is targeted at fixing this situation by making two changes:

* LLVM tools other than LLD are moved in the distribution to
  `$sysroot/lib/rustlib/$host/bin`. This moves them next to LLD and should
  position them for...
* The LLVM shared object is moved to `$sysroot/lib/rustlib/$host/lib`

Together this means that all tools should natively be able to find the shared
object and the shared object should be installed all the time for the various
tools. Overall this should...

Closes #53813

5 years agoUpdate the compiler-builtins submodule
Alex Crichton [Wed, 5 Sep 2018 16:10:55 +0000 (09:10 -0700)]
Update the compiler-builtins submodule

Fixes a mistake in using C shims to...

Closes #53916

5 years agopropagate build.python into cmake
Nathan Froyd [Wed, 5 Sep 2018 15:43:48 +0000 (11:43 -0400)]
propagate build.python into cmake

If a suitable value of Python is not on PATH, one can still invoke x.py
manually, which propagates BOOTSTRAP_PYTHON into the bootstrap
environment.  But building LLVM will abort with error messages about not
being able to find Python, and instructions to set PYTHON_EXECUTABLE,
because nothing is done with BOOTSTRAP_PYTHON when invoking cmake.
Setting build.python in config.toml had no effect in this scenario,
either

To fix this, let's provide PYTHON_EXECUTABLE when invoking cmake; for
the "normal" case of Python in PATH, this doesn't alter any behavior.
For more unusual cases, however, this ensures cmake finds Python
properly.  (This change also ensures there are no differences between
what bootstrap is using, and what cmake uses, which may be useful for
consistency's sake.)

5 years agoA few cleanups and minor improvements to mir/dataflow
ljedrz [Wed, 5 Sep 2018 14:37:21 +0000 (16:37 +0200)]
A few cleanups and minor improvements to mir/dataflow

5 years agoAuto merge of #53878 - alexcrichton:wasm-atomics-feature, r=eddyb
bors [Wed, 5 Sep 2018 13:19:19 +0000 (13:19 +0000)]
Auto merge of #53878 - alexcrichton:wasm-atomics-feature, r=eddyb

rustc: Prepare the `atomics` feature for wasm

This commit adds a few changes for atomic instructions on the
`wasm32-unknown-unknown` target. Atomic instructions are not yet stable in
WebAssembly itself but there are multiple implementations and LLVM has support
for the proposed instruction set, so let's work on exposing it!

Here there are a few inclusions:

* The `atomics` feature was whitelisted for LLVM, allowing code in Rust to
  enable/disable/gate on this.

* The `singlethread` option is turned off for wasm when the `atomics` feature is
  enabled. This means that by default wasm won't be lowering with atomics, but
  when atomics are enabled globally we'll turn off single-threaded mode to
  actually codegen atomics. This probably isn't what we'll want in the long term
  but for now it should work.

* Finally the maximum atomic width is increased to 64 to reflect the current
  wasm spec.