]> git.lizzy.rs Git - rust.git/log
rust.git
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 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 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 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 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 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 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 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 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 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 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.

5 years agoThinLTO: Don't keep files open after mmaping them (because it's not needed).
Michael Woerister [Wed, 5 Sep 2018 11:52:58 +0000 (13:52 +0200)]
ThinLTO: Don't keep files open after mmaping them (because it's not needed).

5 years agoAuto merge of #53867 - cwndrws:json-test-formatter-test-count-as-num, r=nrc
bors [Wed, 5 Sep 2018 09:57:56 +0000 (09:57 +0000)]
Auto merge of #53867 - cwndrws:json-test-formatter-test-count-as-num, r=nrc

Make json test output formatter represent "test_count" as num

fixes #53866

5 years agoAuto merge of #53410 - djrenren:custom-test-frameworks, r=alexcrichton
bors [Wed, 5 Sep 2018 07:30:19 +0000 (07:30 +0000)]
Auto merge of #53410 - djrenren:custom-test-frameworks, r=alexcrichton

Introduce Custom Test Frameworks

Introduces `#[test_case]` and `#[test_runner]` and re-implements `#[test]` and `#[bench]` in terms of them.

Details found here: https://blog.jrenner.net/rust/testing/2018/08/06/custom-test-framework-prop.html

5 years agoMove #[test_case] to a syntax extension
John Renner [Sun, 2 Sep 2018 16:03:24 +0000 (09:03 -0700)]
Move #[test_case] to a syntax extension

5 years agoDocument #[test_case] and #![test_runner]
John Renner [Thu, 30 Aug 2018 20:40:33 +0000 (13:40 -0700)]
Document #[test_case] and #![test_runner]

5 years agoFix #[test] shadowing in macro_prelude
John Renner [Thu, 30 Aug 2018 20:39:32 +0000 (13:39 -0700)]
Fix #[test] shadowing in macro_prelude

5 years agoIntroduce Custom Test Frameworks
John Renner [Sat, 21 Jul 2018 01:04:02 +0000 (18:04 -0700)]
Introduce Custom Test Frameworks

5 years agoAuto merge of #53075 - Mark-Simulacrum:update-cargolock, r=alexcrichton
bors [Wed, 5 Sep 2018 03:04:20 +0000 (03:04 +0000)]
Auto merge of #53075 - Mark-Simulacrum:update-cargolock, r=alexcrichton

Update Cargo.lock

This also includes major version bumps for the rand crate used by core, std, and alloc tests, among other crates (regex, etc.) used elsewhere. Since these are all internal there should be no user-visible changes.

r? @alexcrichton

5 years agoAuto merge of #53027 - matklad:once_is_completed, r=alexcrichton
bors [Wed, 5 Sep 2018 00:37:03 +0000 (00:37 +0000)]
Auto merge of #53027 - matklad:once_is_completed, r=alexcrichton

Allow to check if sync::Once is already initialized

Hi!

I propose to expose a way to check if a `Once` instance is initialized.

I need it in `once_cell`. `OnceCell` is effetively a pair of `(Once, UnsafeCell<Option<T>>)`, which can set the `T` only once. Because I can't check if `Once` is initialized, I am forced to add an indirection and check the value of ptr instead:

https://github.com/matklad/once_cell/blob/8127a81976c3f2f4c0860562c3f14647ebc025c0/src/lib.rs#L423-L429

https://github.com/matklad/once_cell/blob/8127a81976c3f2f4c0860562c3f14647ebc025c0/src/lib.rs#L457-L461

The `parking_lot`'s version of `Once` exposes the state as an enum: https://docs.rs/parking_lot/0.6.3/parking_lot/struct.Once.html#method.state.

I suggest, for now, just to add a simple `bool` function: this fits my use-case perfectly, exposes less implementation details, and is forward-compatible with more fine-grained state checking.

5 years agoBreaking change upgrades
Mark Rousskov [Sat, 4 Aug 2018 22:24:39 +0000 (16:24 -0600)]
Breaking change upgrades

5 years agoRestore lldb build
Tom Tromey [Tue, 4 Sep 2018 15:55:41 +0000 (09:55 -0600)]
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 agoAuto merge of #53870 - Xanewok:update-rls, r=oli-obk
bors [Tue, 4 Sep 2018 13:17:07 +0000 (13:17 +0000)]
Auto merge of #53870 - Xanewok:update-rls, r=oli-obk

Update RLS and Rustfmt

RLS
* Allow project model to download crates ([#1020](https://github.com/rust-lang-nursery/rls/pull/1020))
* Support simple external builds ([#988](https://github.com/rust-lang-nursery/rls/pull/988))
* Support using external Rustfmt ([#990](https://github.com/rust-lang-nursery/rls/pull/990))

Rustfmt (0.99.4)
* Format chains with comment ([#2899](https://github.com/rust-lang-nursery/rls/pull/2899))
* Do not show wildcard pattern in slice pattern ([#2912](https://github.com/rust-lang-nursery/rls/pull/2912))
* Impl only use ([#2951](https://github.com/rust-lang-nursery/rls/pull/2951))
* ... and [more](https://github.com/rust-lang-nursery/rustfmt/compare/5c9a2b6c13d3b6f8d3f9c02b130bb4b54fd489fb...1c408818c8a752dd584e7858b4afd3ceb011a7da)

Bumped in tandem to pull a single version of `rustc-ap-*` libs.

r? @nrc

5 years agoUpdate RLS wrt recent Clippy changes
Igor Matuszewski [Mon, 3 Sep 2018 10:56:42 +0000 (12:56 +0200)]
Update RLS wrt recent Clippy changes

5 years agoUpdate Rustfmt to 0.99.4
Igor Matuszewski [Fri, 31 Aug 2018 19:52:25 +0000 (21:52 +0200)]
Update Rustfmt to 0.99.4

This pulls the same version of rustc-ap-* libs as RLS does.

5 years agoUpdate RLS
Igor Matuszewski [Wed, 29 Aug 2018 16:10:29 +0000 (18:10 +0200)]
Update RLS

5 years agoAuto merge of #53928 - tbu-:pr_doc_fromrawmut, r=frewsxcv
bors [Tue, 4 Sep 2018 07:11:35 +0000 (07:11 +0000)]
Auto merge of #53928 - tbu-:pr_doc_fromrawmut, r=frewsxcv

Link to more detailed docs in `slice::from_raw_parts_mut`

5 years agoAuto merge of #53927 - ljedrz:save_analysis_cleanups, r=oli-obk
bors [Tue, 4 Sep 2018 02:50:59 +0000 (02:50 +0000)]
Auto merge of #53927 - ljedrz:save_analysis_cleanups, r=oli-obk

A few cleanups and minor improvements to save_analysis

- calculate the capacity of some `Vec`s
- change`to_owned()` to `clone()` for the purposes of `lower_attributes`
- remove a superfluous `clone()`
- prefer `to_owned()` to `to_string()`
- a few other minor improvements

5 years agoAuto merge of #53883 - RalfJung:miri-assert, r=oli-obk
bors [Mon, 3 Sep 2018 23:20:31 +0000 (23:20 +0000)]
Auto merge of #53883 - RalfJung:miri-assert, r=oli-obk

miri engine: make sure we do not copy unsized data

r? @oli-obk

5 years agoAuto merge of #53926 - japaric:arm-features, r=alexcrichton
bors [Mon, 3 Sep 2018 20:59:09 +0000 (20:59 +0000)]
Auto merge of #53926 - japaric:arm-features, r=alexcrichton

whitelist some ARM features

required for rust-lang-nursery/stdsimd#557

r? @gnzlbg or @alexcrichton

5 years agoDocument snapshot.rs
Bruno Dutra [Mon, 3 Sep 2018 18:03:14 +0000 (20:03 +0200)]
Document snapshot.rs

5 years agoMove InfiniteLoopDetector to snapshot.rs
Bruno Dutra [Sat, 1 Sep 2018 19:16:22 +0000 (21:16 +0200)]
Move InfiniteLoopDetector to snapshot.rs

5 years agoUse EvalContext's TyCtx for the purpose of hashing the evaluation context
Bruno Dutra [Thu, 30 Aug 2018 19:58:28 +0000 (21:58 +0200)]
Use EvalContext's TyCtx for the purpose of hashing the evaluation context

5 years agoKeep lines shorter than 100 characters
Bruno Dutra [Sun, 26 Aug 2018 17:34:40 +0000 (19:34 +0200)]
Keep lines shorter than 100 characters

5 years agoAdd a convenience macro to reduce code duplication
Bruno Dutra [Sun, 26 Aug 2018 16:47:42 +0000 (18:47 +0200)]
Add a convenience macro to reduce code duplication

5 years agoAdd an info log when snapshotting the constant evaluation context
Bruno Dutra [Sun, 26 Aug 2018 14:28:35 +0000 (16:28 +0200)]
Add an info log when snapshotting the constant evaluation context

5 years agoAdd regression test for #52475
Bruno Dutra [Sat, 18 Aug 2018 12:48:14 +0000 (14:48 +0200)]
Add regression test for #52475

5 years agoImpl Eq and PartialEq for EvalSnapshot in terms of the Snapshot trait
Bruno Dutra [Sat, 18 Aug 2018 12:10:46 +0000 (14:10 +0200)]
Impl Eq and PartialEq for EvalSnapshot in terms of the Snapshot trait

5 years agoImpl SnapshotContext for Memory
Bruno Dutra [Sat, 18 Aug 2018 10:32:37 +0000 (12:32 +0200)]
Impl SnapshotContext for Memory

5 years agoIntroduce Snapshot and SnapshotContext traits
Bruno Dutra [Sat, 18 Aug 2018 10:14:18 +0000 (12:14 +0200)]
Introduce Snapshot and SnapshotContext traits

5 years agoMake vaious allocation related types generic on the allocation id
Bruno Dutra [Sat, 11 Aug 2018 17:08:14 +0000 (19:08 +0200)]
Make vaious allocation related types generic on the allocation id

5 years agoMove EvalSnapshot into its own module
Bruno Dutra [Sat, 4 Aug 2018 15:41:03 +0000 (17:41 +0200)]
Move EvalSnapshot into its own module

5 years agoImplement Hash in terms of HashStable for EvalSnapshot
Bruno Dutra [Sat, 4 Aug 2018 22:01:11 +0000 (00:01 +0200)]
Implement Hash in terms of HashStable for EvalSnapshot

5 years agoPromote EvalSnapshot to newtype
Bruno Dutra [Sat, 28 Jul 2018 17:11:47 +0000 (19:11 +0200)]
Promote EvalSnapshot to newtype

5 years agoRemove unused alloc_id_recursion_tracker
Bruno Dutra [Sat, 28 Jul 2018 15:07:40 +0000 (17:07 +0200)]
Remove unused alloc_id_recursion_tracker

5 years agoA few cleanups and minor improvements to save_analysis
ljedrz [Mon, 3 Sep 2018 12:31:57 +0000 (14:31 +0200)]
A few cleanups and minor improvements to save_analysis

5 years agoAuto merge of #53697 - Cyres:const-fn-int-ops, r=oli-obk
bors [Mon, 3 Sep 2018 16:31:34 +0000 (16:31 +0000)]
Auto merge of #53697 - Cyres:const-fn-int-ops, r=oli-obk

Add more const int ops

r? @oli-obk

Tracking Issue: #53718

list of `const fn`s in this PR:

- `feature = const_int_rotate`
  - `rotate_left`
  - `rotate_right`
- `feature = const_int_wrapping`
  - `wrapping_add`
  - `wrapping_sub`
  - `wrapping_mul`
  - `wrapping_shl`
  - `wrapping_shr`
- `feature = const_int_overflowing`
  - `overflowing_add`
  - `overflowing_sub`
  - `overflowing_mul`
  - `overflowing_shl`
  - `overflowing_shr`
- `feature = const_int_sign`
  - `is_positive`
  - `is_negative`
- `feature = const_int_conversion`
  - `reverse_bits`
  - `to_le_bytes`
  - `to_ne_bytes`
  - `from_be_bytes`
  - `from_le_bytes`
  - `from_ne_bytes`
  - `reverse_bits`

5 years agoLink to more detailed docs in `slice::from_raw_parts_mut`
Tobias Bucher [Mon, 3 Sep 2018 16:29:08 +0000 (18:29 +0200)]
Link to more detailed docs in `slice::from_raw_parts_mut`

5 years agowhitelist some ARM features
Jorge Aparicio [Mon, 3 Sep 2018 14:52:43 +0000 (16:52 +0200)]
whitelist some ARM features

5 years agoAuto merge of #53673 - michaelwoerister:incr-thinlto-2000, r=alexcrichton
bors [Mon, 3 Sep 2018 13:59:57 +0000 (13:59 +0000)]
Auto merge of #53673 - michaelwoerister:incr-thinlto-2000, r=alexcrichton

Enable ThinLTO with incremental compilation.

This is an updated version of #52309. This PR allows `rustc` to use (local) ThinLTO and incremental compilation at the same time. In theory this should allow for getting compile-time improvements for small changes while keeping the runtime performance of the generated code roughly the same as when compiling non-incrementally.

The difference to #52309 is that this version also caches the pre-LTO version of LLVM bitcode. This allows for another layer of caching:
1. if the module itself has changed, we have to re-codegen and re-optimize.
2. if the module itself has not changed, but a module it imported from during ThinLTO has, we don't need to re-codegen and don't need to re-run the first optimization phase. Only the second (i.e. ThinLTO-) optimization phase is re-run.
3. if neither the module itself nor any of its imports have changed then we can re-use the final, post-ThinLTO version of the module. (We might have to load its pre-ThinLTO version though so it's available for other modules to import from)

5 years agoAdd missing brace
Tim Diekmann [Mon, 3 Sep 2018 13:26:27 +0000 (15:26 +0200)]
Add missing brace

5 years agoAdd ident function to the rest of the tests
Cyres [Mon, 3 Sep 2018 13:25:06 +0000 (15:25 +0200)]
Add ident function to the rest of the tests

5 years agoWrap rhs in ident function
Tim Diekmann [Mon, 3 Sep 2018 13:01:04 +0000 (15:01 +0200)]
Wrap rhs in ident function

5 years agoAdd const_unstable flag to `overflowing_shr`
Tim Diekmann [Mon, 3 Sep 2018 12:53:05 +0000 (14:53 +0200)]
Add const_unstable flag to `overflowing_shr`

5 years agoAuto merge of #53831 - TheDarkula:pointer-check, r=oli-obk
bors [Mon, 3 Sep 2018 11:31:15 +0000 (11:31 +0000)]
Auto merge of #53831 - TheDarkula:pointer-check, r=oli-obk

Added pointer checking to sanity checks

r? @oli-obk

5 years agoincr.ThinLTO: Do some cleanup and add some logging.
Michael Woerister [Mon, 3 Sep 2018 10:42:27 +0000 (12:42 +0200)]
incr.ThinLTO: Do some cleanup and add some logging.

5 years agoAdd memmap crate to tidy whitelist.
Michael Woerister [Mon, 3 Sep 2018 10:59:30 +0000 (12:59 +0200)]
Add memmap crate to tidy whitelist.

5 years agoAuto merge of #53865 - zilbuz:issue-52768, r=pnkfelix
bors [Mon, 3 Sep 2018 08:56:42 +0000 (08:56 +0000)]
Auto merge of #53865 - zilbuz:issue-52768, r=pnkfelix

Remove 'not reporting regions error due to nll' warning

Fix #52768

5 years agoAuto merge of #53838 - nrc:save-generic, r=eddyb
bors [Mon, 3 Sep 2018 02:32:11 +0000 (02:32 +0000)]
Auto merge of #53838 - nrc:save-generic, r=eddyb

save-analysis: record info for the types in `where` clauses

cc https://github.com/rust-lang-nursery/rls/issues/987

r? @eddyb

5 years agoAuto merge of #53725 - tbu-:pr_getrandom_syscalls, r=alexcrichton
bors [Sun, 2 Sep 2018 21:24:18 +0000 (21:24 +0000)]
Auto merge of #53725 - tbu-:pr_getrandom_syscalls, r=alexcrichton

Reduce number of syscalls in `rand`

This skips the initial zero-length `getrandom` call and
directly hands the user buffer to the operating system, saving one
`getrandom` syscall.

5 years agoAuto merge of #53899 - Manishearth:clippyup, r=kennytm
bors [Sun, 2 Sep 2018 18:13:03 +0000 (18:13 +0000)]
Auto merge of #53899 - Manishearth:clippyup, r=kennytm

Update clippy

r? @kennytm @oli-obk

5 years agoAuto merge of #53599 - matthiaskrgr:split_str__to__split_char, r=frewsxcv
bors [Sun, 2 Sep 2018 15:27:56 +0000 (15:27 +0000)]
Auto merge of #53599 - matthiaskrgr:split_str__to__split_char, r=frewsxcv

use char pattern for single-character splits: a.split("x") -> a.split('x')

5 years agoAuto merge of #53897 - topecongiro:check-to-eat, r=petrochenkov
bors [Sun, 2 Sep 2018 13:11:22 +0000 (13:11 +0000)]
Auto merge of #53897 - topecongiro:check-to-eat, r=petrochenkov

Replace check() + bump() with eat()

cc #51945.

r? @petrochenkov

5 years agoUpdate clippy
Manish Goregaokar [Sun, 2 Sep 2018 07:59:50 +0000 (13:29 +0530)]
Update clippy

5 years agoReplace check() + bump() with eat()
Seiichi Uchida [Sun, 2 Sep 2018 06:13:29 +0000 (15:13 +0900)]
Replace check() + bump() with eat()

5 years agoAuto merge of #53887 - flip1995:tool_lints, r=Manishearth
bors [Sun, 2 Sep 2018 02:10:33 +0000 (02:10 +0000)]
Auto merge of #53887 - flip1995:tool_lints, r=Manishearth

Fix of bug introduced by #53762 (tool_lints)

Before implementing backwards compat for tool lints, the `Tool` case when parsing cmdline lints was unreachable. This changed with #53762.

This fix is needed for rls test-pass. (@nrc)

r? @Manishearth

5 years agoAuto merge of #53842 - estebank:various, r=petrochenkov
bors [Sat, 1 Sep 2018 23:34:14 +0000 (23:34 +0000)]
Auto merge of #53842 - estebank:various, r=petrochenkov

Various small diagnostic and code clean up

 - Point at def span on incorrect `panic` or `oom` function
 - Use structured suggestion instead of note for `+=` that can be performed on a dereference of the left binding
 - Small code formatting cleanup

5 years agoFix an endless loop when `getrandom` is not available
Tobias Bucher [Sat, 1 Sep 2018 22:19:11 +0000 (00:19 +0200)]
Fix an endless loop when `getrandom` is not available

5 years agoAuto merge of #53815 - F001:if-let-guard, r=petrochenkov
bors [Sat, 1 Sep 2018 20:31:29 +0000 (20:31 +0000)]
Auto merge of #53815 - F001:if-let-guard, r=petrochenkov

refactor match guard

This is the first step to implement RFC 2294: if-let-guard. Tracking issue: https://github.com/rust-lang/rust/issues/51114

The second step should be introducing another variant `IfLet` in the Guard enum. I separated them into 2 PRs for the convenience of reviewers.

r? @petrochenkov

5 years agoAuto merge of #53533 - withoutboats:error-source, r=withoutboats
bors [Sat, 1 Sep 2018 18:08:45 +0000 (18:08 +0000)]
Auto merge of #53533 - withoutboats:error-source, r=withoutboats

Add Error::source method per RFC 2504.

This implements part of RFC 2504.

* Adds `Error::source`, a replacement for `Error::cause` with the "right" signature, which will be instantly stable.
* Deprecates `Error::cause` in 1.33 (this choice was based on the precedent in #52994, which we haven't finalized).
* Redefines `Error::cause` to delegate to `Error::source` (the delegation can only go in this direction, not the other).

@rfcbot fcp merge

5 years agodeprcated -> deprecated
Manish Goregaokar [Sat, 1 Sep 2018 16:15:44 +0000 (21:45 +0530)]
deprcated -> deprecated

5 years agomove the is_field_list_non_exhaustive flag to VariantDef
Ariel Ben-Yehuda [Sat, 1 Sep 2018 16:10:26 +0000 (19:10 +0300)]
move the is_field_list_non_exhaustive flag to VariantDef

This completely splits the IS_NON_EXHAUSTIVE flag. No functional
changes intended.

5 years agoAdd tests for cmdline tool lints
flip1995 [Sat, 1 Sep 2018 16:06:36 +0000 (18:06 +0200)]
Add tests for cmdline tool lints

5 years agoAuto merge of #53884 - kennytm:rollup, r=kennytm
bors [Sat, 1 Sep 2018 15:48:21 +0000 (15:48 +0000)]
Auto merge of #53884 - kennytm:rollup, r=kennytm

Rollup of 9 pull requests

Successful merges:

 - #53076 (set cfg(rustdoc) when rustdoc is running on a crate)
 - #53622 (cleanup: Add main functions to some UI tests)
 - #53769 (Also link Clippy repo in the CONTRIBUTING.md file)
 - #53774 (Add rust-gdbgui script.)
 - #53781 (bench: libcore: fix build failure of any.rs benchmark (use "dyn Any"))
 - #53782 (Make Arc cloning mechanics clearer in module docs)
 - #53790 (Add regression test for issue #52060)
 - #53801 (Prevent duplicated impl on foreign types)
 - #53850 (Nuke the `const_to_allocation` query)

5 years agoFix of bug introduced by #53762
flip1995 [Sat, 1 Sep 2018 15:43:14 +0000 (17:43 +0200)]
Fix of bug introduced by #53762

5 years agoRollup merge of #53076 - QuietMisdreavus:cfg-rustdoc, r=GuillaumeGomez
kennytm [Sat, 1 Sep 2018 15:18:41 +0000 (23:18 +0800)]
Rollup merge of #53076 - QuietMisdreavus:cfg-rustdoc, r=GuillaumeGomez

set cfg(rustdoc) when rustdoc is running on a crate

When using `#[doc(cfg)]` to document platform-specific items, it's a little cumbersome to get all the platforms' items to appear all at once. For example, the standard library adds `--cfg dox` to rustdoc's command line whenever it builds docs, and the documentation for `#![feature(doc_cfg)]` suggests using a Cargo feature to approximate the same thing. This is a little awkward, because you always need to remember to set `--features dox` whenever you build documentation.

This PR proposes making rustdoc set `#[cfg(rustdoc)]` whenever it runs on a crate, to provide an officially-sanctioned version of this that is set automatically. This way, there's a standardized way to declare that a certain version of an item is specifically when building docs.

To try to prevent the spread of this feature from happening too quickly, this PR also restricts the use of this flag to whenever `#![feature(doc_cfg)]` is active. I'm sure there are other uses for this, but right now i'm tying it to this feature. (If it makes more sense to give this its own feature, i can easily do that.)

5 years agoRollup merge of #53850 - csmoe:const_to_alloc, r=RalfJung
kennytm [Sat, 1 Sep 2018 13:14:16 +0000 (21:14 +0800)]
Rollup merge of #53850 - csmoe:const_to_alloc, r=RalfJung

Nuke the `const_to_allocation` query

Closes https://github.com/rust-lang/rust/issues/53847
r? @RalfJung
`./x.py check` works anyway, let's checkout tests from ci.

5 years agoRollup merge of #53801 - GuillaumeGomez:duplicated-foreign-type-impls, r=QuietMisdreavus
kennytm [Sat, 1 Sep 2018 13:14:15 +0000 (21:14 +0800)]
Rollup merge of #53801 - GuillaumeGomez:duplicated-foreign-type-impls, r=QuietMisdreavus

Prevent duplicated impl on foreign types

Fixes #53689.

r? @QuietMisdreavus

5 years agoRollup merge of #53790 - zilbuz:issue-52060, r=nikomatsakis
kennytm [Sat, 1 Sep 2018 13:14:14 +0000 (21:14 +0800)]
Rollup merge of #53790 - zilbuz:issue-52060, r=nikomatsakis

Add regression test for issue #52060

Fix #52060

5 years agoRollup merge of #53782 - rask:task/arc-docs-adjustment, r=cramertj
kennytm [Sat, 1 Sep 2018 13:14:13 +0000 (21:14 +0800)]
Rollup merge of #53782 - rask:task/arc-docs-adjustment, r=cramertj

Make Arc cloning mechanics clearer in module docs

Add some more wording to module documentation regarding how
`Arc::clone()` works, as some users have assumed cloning Arc's
to work via dereferencing to inner value as follows:

    use std::sync::Arc;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(1 == myarcref);

Instead of the actual mechanic of referencing the existing
Arc value:

    use std::sync::Arg;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(myarcref == &myarc); // not sure if assert could assert this in the real world

5 years agoRollup merge of #53781 - matthiaskrgr:fix_any_bench, r=kennytm
kennytm [Sat, 1 Sep 2018 13:14:11 +0000 (21:14 +0800)]
Rollup merge of #53781 - matthiaskrgr:fix_any_bench, r=kennytm

bench: libcore: fix build failure of any.rs benchmark (use "dyn Any")

fixes
````
error: trait objects without an explicit `dyn` are deprecated
  --> libcore/../libcore/benches/any.rs:18:36
   |
18 |         let mut y = &mut x as &mut Any;
   |                                    ^^^ help: use `dyn`: `dyn Any`
   |
   = note: requested on the command line with `-D bare-trait-objects`
````

5 years agoRollup merge of #53774 - PhilipDaniels:master, r=tromey
kennytm [Sat, 1 Sep 2018 13:14:10 +0000 (21:14 +0800)]
Rollup merge of #53774 - PhilipDaniels:master, r=tromey

Add rust-gdbgui script.

This script invokes the [gdbgui](https://gdbgui.com/) graphical GDB front-end with the Rust pretty printers loaded. The script does not install gdbgui, that must be done manually.

As an escapee from Visual Studio it is nice to have a point-and-click debugger. This script invokes `gdbgui` similarly to the way that `rust-gdb` invokes `gdb` - I copied that script as a starting point.

Because it is a wrapper around a wrapper you don't have as much flexibility in passing arguments to GDB and I could not find a way to eliminate the single quotes you have to use when you want to pass arguments to your program (`gdbgui` supposedly supports an `--args` option which I think should allow this, but I couldn't get it to work, my shell-fu is weak). Still, I find this very usable for debugging programs, and it is a lot more approachable than gdb in the terminal.

5 years agoRollup merge of #53769 - flip1995:patch-1, r=kennytm
kennytm [Sat, 1 Sep 2018 13:14:09 +0000 (21:14 +0800)]
Rollup merge of #53769 - flip1995:patch-1, r=kennytm

Also link Clippy repo in the CONTRIBUTING.md file

r? @steveklabnik

5 years agoRollup merge of #53622 - petrochenkov:nomain, r=oli-obk
kennytm [Sat, 1 Sep 2018 13:14:07 +0000 (21:14 +0800)]
Rollup merge of #53622 - petrochenkov:nomain, r=oli-obk

cleanup: Add main functions to some UI tests

5 years agorebase
Tim [Sat, 1 Sep 2018 13:05:55 +0000 (15:05 +0200)]
rebase

5 years agoAuto merge of #53604 - oli-obk:min_const_fn, r=Centril,varkor
bors [Sat, 1 Sep 2018 11:26:24 +0000 (11:26 +0000)]
Auto merge of #53604 - oli-obk:min_const_fn, r=Centril,varkor

Implement the `min_const_fn` feature gate

cc @RalfJung @eddyb

r? @Centril

implements the feature gate for #53555

I added a hack so the `const_fn` feature gate also enables the `min_const_fn` feature gate. This ensures that nightly users of `const_fn` don't have to touch their code at all.

The `min_const_fn` checks are run first, and if they succeeded, the `const_fn` checks are run additionally to ensure we didn't miss anything.

5 years agoUpdate tests
Basile Desloges [Fri, 31 Aug 2018 17:27:11 +0000 (19:27 +0200)]
Update tests

5 years agoRemove 'not reporting regions error due to nll' warning
Basile Desloges [Fri, 31 Aug 2018 13:15:44 +0000 (15:15 +0200)]
Remove 'not reporting regions error due to nll' warning

5 years agomake sure we do not copy unsized data
Ralf Jung [Sat, 1 Sep 2018 10:19:03 +0000 (12:19 +0200)]
make sure we do not copy unsized data

5 years agobug! instead of panic!
csmoe [Sat, 1 Sep 2018 10:13:28 +0000 (18:13 +0800)]
bug! instead of panic!

5 years agoAuto merge of #53822 - dvc94ch:riscv, r=japaric
bors [Sat, 1 Sep 2018 06:58:16 +0000 (06:58 +0000)]
Auto merge of #53822 - dvc94ch:riscv, r=japaric

[RISCV] Use lld as the default linker; Enable C extension; Add riscv32imc-unknown-none-elf target

The riscv32imc-unknown-none-elf target is intended for soft cores.

The riscv32imc target is supported by the following popular soft cores:

picorv32: https://github.com/cliffordwolf/picorv32
vexriscv: https://github.com/SpinalHDL/VexRiscv
pulp riscy: https://github.com/pulp-platform/riscv
pulp zero-riscy: https://github.com/pulp-platform/zero-riscy

5 years agorustc: Prepare the `atomics` feature for wasm
Alex Crichton [Sat, 1 Sep 2018 05:41:17 +0000 (22:41 -0700)]
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.

5 years agoAuto merge of #53762 - flip1995:tool_lints, r=Manishearth
bors [Sat, 1 Sep 2018 03:27:42 +0000 (03:27 +0000)]
Auto merge of #53762 - flip1995:tool_lints, r=Manishearth

Backwards compatibility for tool/clippy lints

cc #44690
cc https://github.com/rust-lang-nursery/rust-clippy/pull/2977#issuecomment-409706557

This is the next step towards `tool_lints`.

This makes Clippy lints still work without scoping, but will warn and suggest the new scoped name. This warning will only appear if the code is checked with Clippy itself.

There is still an issue with using the old lint name in inner attributes. For inner attributes the warning gets emitted twice. I'm currently not really sure why this happens, but will try to fix this ASAP.

r? @Manishearth