]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoFurther reduce the likelyhood of hash collisions
Oliver Scherer [Fri, 21 Jun 2019 07:56:02 +0000 (09:56 +0200)]
Further reduce the likelyhood of hash collisions

5 years agoDocumentation typo
Oliver Scherer [Fri, 21 Jun 2019 07:54:11 +0000 (09:54 +0200)]
Documentation typo

5 years agoPacify tidy
Oliver Scherer [Wed, 19 Jun 2019 18:17:09 +0000 (20:17 +0200)]
Pacify tidy

5 years agoRename regression test to link it to the corresponding issue
Oliver Scherer [Wed, 19 Jun 2019 17:48:03 +0000 (19:48 +0200)]
Rename regression test to link it to the corresponding issue

5 years agoChange `ByRef` to a struct variant to clarify its fields via names
Oliver Scherer [Wed, 19 Jun 2019 17:43:13 +0000 (19:43 +0200)]
Change `ByRef` to a struct variant to clarify its fields via names

5 years agoRemove the `AllocId` from `ByRef` values
Oliver Scherer [Wed, 19 Jun 2019 13:58:51 +0000 (15:58 +0200)]
Remove the `AllocId` from `ByRef` values

`ByRef` const values have no identity beyond their value, we should not treat them as having identity. The `AllocId` often differed between equal constants, because of the way that the miri-engine evaluates constants.

5 years agoMake `Allocation` stable hash robust
Oliver Scherer [Thu, 13 Jun 2019 14:52:37 +0000 (16:52 +0200)]
Make `Allocation` stable hash robust

5 years agomark_definedness cannot fail
Oliver Scherer [Tue, 11 Jun 2019 08:56:41 +0000 (10:56 +0200)]
mark_definedness cannot fail

5 years agoAuto merge of #58351 - oli-obk:double_check_const_eval, r=RalfJung
bors [Wed, 19 Jun 2019 09:43:58 +0000 (09:43 +0000)]
Auto merge of #58351 - oli-obk:double_check_const_eval, r=RalfJung

Refactor interning to properly mark memory as mutable or immutable

r? @RalfJung

This implementation is incomplete out of multiple reasons

* [ ] add `-Zunleash_the_miri_inside_of_you` tests
* [ ] report an error if there's an `UnsafeCell` behind a reference in a constant
* [ ] make validity checks actually test whether the mutability of their allocations match what they see in the type

5 years agopacked -> repr(packed)
Oliver Scherer [Wed, 19 Jun 2019 09:20:38 +0000 (11:20 +0200)]
packed -> repr(packed)

5 years agoFix comment about alignments
Oliver Scherer [Wed, 19 Jun 2019 09:15:29 +0000 (11:15 +0200)]
Fix comment about alignments

5 years agoRemove now-unnecessary lifetime
Oliver Scherer [Wed, 19 Jun 2019 08:34:32 +0000 (10:34 +0200)]
Remove now-unnecessary lifetime

5 years agoMore FIXMEs
Oliver Scherer [Wed, 19 Jun 2019 08:03:53 +0000 (10:03 +0200)]
More FIXMEs

5 years agoExplain existance of `Align` field
Oliver Scherer [Wed, 19 Jun 2019 07:57:07 +0000 (09:57 +0200)]
Explain existance of `Align` field

5 years agoWeave the alignment through `ByRef`
Oliver Scherer [Fri, 14 Jun 2019 09:29:52 +0000 (11:29 +0200)]
Weave the alignment through `ByRef`

5 years agoOutright ignore any alignment in `const_field`
Oliver Scherer [Thu, 13 Jun 2019 15:54:54 +0000 (17:54 +0200)]
Outright ignore any alignment in `const_field`

5 years agoUpdate ui test output
Oliver Scherer [Thu, 13 Jun 2019 15:41:25 +0000 (17:41 +0200)]
Update ui test output

5 years agoElaborate some more on what mutability field means what
Oliver Scherer [Thu, 13 Jun 2019 15:18:10 +0000 (17:18 +0200)]
Elaborate some more on what mutability field means what

5 years agoUpdate to `TyCtxt` lifetime changes
Oliver Scherer [Thu, 13 Jun 2019 15:17:50 +0000 (17:17 +0200)]
Update to `TyCtxt` lifetime changes

5 years agoFix typo
Oliver Scherer [Thu, 13 Jun 2019 15:05:56 +0000 (17:05 +0200)]
Fix typo

5 years agoThe future is now
Oliver Scherer [Thu, 13 Jun 2019 15:05:32 +0000 (17:05 +0200)]
The future is now

5 years agos/intern/intern_shallow/
Oliver Scherer [Thu, 13 Jun 2019 15:04:46 +0000 (17:04 +0200)]
s/intern/intern_shallow/

5 years agoAdd and update more tests
Oliver Scherer [Tue, 11 Jun 2019 14:17:26 +0000 (16:17 +0200)]
Add and update more tests

5 years agoElaborate on a comment
Oliver Scherer [Tue, 11 Jun 2019 14:17:17 +0000 (16:17 +0200)]
Elaborate on a comment

5 years agoMerge `StaticMut` and `Static` logic
Oliver Scherer [Tue, 11 Jun 2019 14:17:08 +0000 (16:17 +0200)]
Merge `StaticMut` and `Static` logic

5 years agoFix rebase fallout
Oliver Scherer [Tue, 11 Jun 2019 11:23:08 +0000 (13:23 +0200)]
Fix rebase fallout

5 years agoElaborate on why we don't look at frozenness
Oliver Scherer [Mon, 3 Jun 2019 16:39:38 +0000 (18:39 +0200)]
Elaborate on why we don't look at frozenness

5 years agoDon't ICE when pattern matching packed structs
Oliver Scherer [Mon, 3 Jun 2019 16:35:50 +0000 (18:35 +0200)]
Don't ICE when pattern matching packed structs

5 years agoPrevent cyclic locks of `alloc_map`
Oliver Scherer [Mon, 3 Jun 2019 15:49:14 +0000 (17:49 +0200)]
Prevent cyclic locks of `alloc_map`

5 years agoMake interning explicitly care about types and the mutability of memory
Oliver Scherer [Sun, 10 Feb 2019 13:59:13 +0000 (14:59 +0100)]
Make interning explicitly care about types and the mutability of memory

5 years agoFixmes and style fixes
Oliver Scherer [Tue, 5 Feb 2019 19:44:59 +0000 (20:44 +0100)]
Fixmes and style fixes

5 years agoAuto merge of #61945 - Centril:rollup-xdqo2mn, r=Centril
bors [Wed, 19 Jun 2019 06:49:13 +0000 (06:49 +0000)]
Auto merge of #61945 - Centril:rollup-xdqo2mn, r=Centril

Rollup of 11 pull requests

Successful merges:

 - #61505 (Only show methods that appear in `impl` blocks in the Implementors sections of trait doc pages)
 - #61701 (move stray run-pass const tests into const/ folder)
 - #61748 (Tweak transparent enums and unions diagnostic spans)
 - #61802 (Make MaybeUninit #[repr(transparent)])
 - #61839 (ci: Add a script for generating CPU usage graphs)
 - #61842 (Remove unnecessary lift calls)
 - #61843 (Turn down the myriad-closures test)
 - #61896 (rustc_typeck: correctly compute `Substs` for `Res::SelfCtor`.)
 - #61898 (syntax: Factor out common fields from `SyntaxExtension` variants)
 - #61938 (create an issue for miri even in status test-fail)
 - #61941 (Preserve generator and yield source for error messages)

Failed merges:

r? @ghost

5 years agoRollup merge of #61941 - cramertj:no-more-yield-errors, r=centril
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:13 +0000 (01:52 +0200)]
Rollup merge of #61941 - cramertj:no-more-yield-errors, r=centril

Preserve generator and yield source for error messages

Previously, error messages after HIR lowering all referred
to generators and yield, regardless of whether the original
source was a generator or an async/await body. This change
tracks the kind of each generator and yield source in order
to provide appropriately tailored error messages.

Fixes #60615.

5 years agoRollup merge of #61938 - RalfJung:miri-toolstate, r=kennytm
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:12 +0000 (01:52 +0200)]
Rollup merge of #61938 - RalfJung:miri-toolstate, r=kennytm

create an issue for miri even in status test-fail

I fired up python to see that this parses, but I wouldn't know how to test this script.

5 years agoRollup merge of #61898 - petrochenkov:sekind, r=eddyb
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:10 +0000 (01:52 +0200)]
Rollup merge of #61898 - petrochenkov:sekind, r=eddyb

syntax: Factor out common fields from `SyntaxExtension` variants

And some other related cleanups.

Continuation of https://github.com/rust-lang/rust/pull/61606.
This will also help to unblock https://github.com/rust-lang/rust/pull/61877.

5 years agoRollup merge of #61896 - eddyb:correct-self-ctor, r=petrochenkov
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:09 +0000 (01:52 +0200)]
Rollup merge of #61896 - eddyb:correct-self-ctor, r=petrochenkov

rustc_typeck: correctly compute `Substs` for `Res::SelfCtor`.

Fixes #61882.

r? @petrochenkov cc @varkor

5 years agoRollup merge of #61843 - alexcrichton:disable-myriad-closures, r=pietroalbini
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:07 +0000 (01:52 +0200)]
Rollup merge of #61843 - alexcrichton:disable-myriad-closures, r=pietroalbini

Turn down the myriad-closures test

This tests takes nearly 5 minutes to compile on CI where the CPUs we
have aren't exactly the fastest. This test does actually require all
closures to exist to exhibit the original bug, but it seems a little
excessive to test a single bug on CI on all platforms which simply pegs
a single CPU for 5 minutes with no parallelism opportunities, so this
turns down the test to still exercise it somewhat at least.

5 years agoRollup merge of #61842 - Zoxc:trim-lift, r=eddyb
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:06 +0000 (01:52 +0200)]
Rollup merge of #61842 - Zoxc:trim-lift, r=eddyb

Remove unnecessary lift calls

Note that some of these might be useful for sanity checking that there's no infer types or regions.

r? @eddyb

5 years agoRollup merge of #61839 - alexcrichton:pr-and-master-builds, r=pietroalbini
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:04 +0000 (01:52 +0200)]
Rollup merge of #61839 - alexcrichton:pr-and-master-builds, r=pietroalbini

ci: Add a script for generating CPU usage graphs

This commit checks in a script which generates CPU usage graphs over
time, expanding on the previous comment that was include in the
collection file.

Some example graphs from the [latest build](https://dev.azure.com/rust-lang/rust/_build/results?buildId=717) look like:

![dist-x86_64-apple](https://user-images.githubusercontent.com/64996/59520676-16c5b000-8e90-11e9-9188-27001911f270.png)

![x86_64-msvc-1](https://user-images.githubusercontent.com/64996/59520677-175e4680-8e90-11e9-8568-4b564807324e.png)

![x86_64-mingw-1](https://user-images.githubusercontent.com/64996/59520680-175e4680-8e90-11e9-939d-a73c7224582f.png)

![test-various](https://user-images.githubusercontent.com/64996/59520682-175e4680-8e90-11e9-9980-900ed4eeb8f4.png)

5 years agoRollup merge of #61802 - mjbshaw:maybe-uninit-transparent, r=cramertj
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:03 +0000 (01:52 +0200)]
Rollup merge of #61802 - mjbshaw:maybe-uninit-transparent, r=cramertj

Make MaybeUninit #[repr(transparent)]

Tracking issue: #60405

5 years agoRollup merge of #61748 - estebank:transparent-span, r=Centril
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:52:01 +0000 (01:52 +0200)]
Rollup merge of #61748 - estebank:transparent-span, r=Centril

Tweak transparent enums and unions diagnostic spans

5 years agoRollup merge of #61701 - RalfJung:const-tests, r=cramertj
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:51:59 +0000 (01:51 +0200)]
Rollup merge of #61701 - RalfJung:const-tests, r=cramertj

move stray run-pass const tests into const/ folder

r? @oli-obk

5 years agoRollup merge of #61505 - ebarnard:doc-shrink, r=GuillaumeGomez
Mazdak Farrokhzad [Tue, 18 Jun 2019 23:51:58 +0000 (01:51 +0200)]
Rollup merge of #61505 - ebarnard:doc-shrink, r=GuillaumeGomez

Only show methods that appear in `impl` blocks in the Implementors sections of trait doc pages

In the "Implementors" and "Implementations on Foreign Types" sections, only show methods that appear in the `impl` block for that type. This has the benefit of
- Reducing the size of the Iterator page, and other large trait documentation pages.
- Retaining documentation on the `impl` blocks and functions in the `impl` blocks.
- Indicating which provided methods are overridden.
- Making the documentation match the structure of the code being documented.
- Being a small change that can be easily backed out if issues arise.

A set of Rust stdlib docs build with this change are [available here](https://ebarnard.github.io/2019-06-03-rust-smaller-trait-implementers-docs/).

The size of the [`Iterator` doc page](https://ebarnard.github.io/2019-06-03-rust-smaller-trait-implementers-docs/std/iter/trait.Iterator.html) is reduced from 14.4MB (latest nightly) to 724kB.

Before:
<img width="1411" alt="Screenshot 2019-06-03 at 23 12 17" src="https://user-images.githubusercontent.com/1059683/58837971-1722a780-8655-11e9-8d81-51e48130951d.png">

After:
<img width="1428" alt="Screenshot 2019-06-03 at 16 41 27" src="https://user-images.githubusercontent.com/1059683/58814907-84ffac80-861e-11e9-8692-79be473a5299.png">

cc #55900

5 years agoPreserve generator and yield source for error messages
Taylor Cramer [Tue, 18 Jun 2019 21:34:51 +0000 (14:34 -0700)]
Preserve generator and yield source for error messages

Previously, error messages after HIR lowering all referred
to generators and yield, regardless of whether the original
source was a generator or an async/await body. This change
tracks the kind of each generator and yield source in order
to provide appropriately tailored error messages.

5 years agoAuto merge of #59625 - immunant:copy_variadics_typealias, r=eddyb
bors [Tue, 18 Jun 2019 21:50:46 +0000 (21:50 +0000)]
Auto merge of #59625 - immunant:copy_variadics_typealias, r=eddyb

Refactor C FFI variadics to more closely match their C counterparts, and add Clone implementation

We had to make some changes to expose `va_copy` and `va_end` directly to users (mainly for C2Rust, but not exclusively):
- redefine the Rust variadic structures to more closely correspond to C: `VaList` now matches `va_list`, and `VaListImpl` matches `__va_list_tag`
- add `Clone` for `VaListImpl`
- add explicit `as_va_list()` conversion function from `VaListImpl` to `VaList`
- add deref coercion from `VaList` to `VaListImpl`
- add support for the `asmjs` target

All these changes were needed for use cases like:
```Rust
let mut ap2 = va_copy(ap);
vprintf(fmt, ap2);
va_end(&mut ap2);
```

5 years agocreate an issue for miri even in status test-fail
Ralf Jung [Tue, 18 Jun 2019 19:57:31 +0000 (21:57 +0200)]
create an issue for miri even in status test-fail

5 years agoAuto merge of #61891 - eddyb:lifetime-cleanups, r=oli-obk
bors [Tue, 18 Jun 2019 19:04:15 +0000 (19:04 +0000)]
Auto merge of #61891 - eddyb:lifetime-cleanups, r=oli-obk

rustc: remove 'x: 'y bounds (except where necessary or from comments/strings).

This PR removes all lifetime-lifetime "outlives" bounds (e.g. `'tcx: 'a`) bounds except a few necessary ones (see the `reintroduce lifetime bounds where necessary` commit).

Some of these bounds kept around otherwise-unused lifetimes (e.g. `<'a, 'tcx: 'a>` followed by uses of `'tcx` but not `'a`) - these lifetimes (i.e. `'a`) were then removed.
(maybe they should be considered unused by the lint? cc @matthewjasper @zackmdavis)

r? @oli-obk cc @rust-lang/compiler

5 years agoci: Add a script for generating CPU usage graphs
Alex Crichton [Fri, 14 Jun 2019 15:31:43 +0000 (08:31 -0700)]
ci: Add a script for generating CPU usage graphs

This commit checks in a script which generates CPU usage graphs over
time, expanding on the previous comment that was include in the
collection file.

5 years agoAuto merge of #61932 - matthiaskrgr:submodule_upd, r=oli-obk
bors [Tue, 18 Jun 2019 16:08:17 +0000 (16:08 +0000)]
Auto merge of #61932 - matthiaskrgr:submodule_upd, r=oli-obk

submodules: update clippy from be5d17fe to 868f168c

Changes:
````
rustup https://github.com/rust-lang/rust/pull/61836/
fix suggestion for floating points inequality
````
r? @oli-obk

5 years agotest: normalize away the line/column info in ui/pattern/const-pat-ice.
Eduard-Mihai Burtescu [Sun, 16 Jun 2019 11:11:20 +0000 (14:11 +0300)]
test: normalize away the line/column info in ui/pattern/const-pat-ice.

5 years agoRun `rustfmt --file-lines ...` for changes from previous commits.
Eduard-Mihai Burtescu [Sun, 16 Jun 2019 09:41:24 +0000 (12:41 +0300)]
Run `rustfmt --file-lines ...` for changes from previous commits.

5 years agorustc: reintroduce lifetime bounds where necessary.
Eduard-Mihai Burtescu [Sun, 16 Jun 2019 09:33:47 +0000 (12:33 +0300)]
rustc: reintroduce lifetime bounds where necessary.

5 years agorustc: remove unused lifetimes.
Eduard-Mihai Burtescu [Sun, 16 Jun 2019 09:33:21 +0000 (12:33 +0300)]
rustc: remove unused lifetimes.

5 years agorustc: remove leftover lifetimes with no bounds from where clauses.
Eduard-Mihai Burtescu [Fri, 14 Jun 2019 16:43:53 +0000 (19:43 +0300)]
rustc: remove leftover lifetimes with no bounds from where clauses.

5 years agorustc: remove 'x: 'y bounds (except from comments/strings).
Eduard-Mihai Burtescu [Fri, 14 Jun 2019 16:39:39 +0000 (19:39 +0300)]
rustc: remove 'x: 'y bounds (except from comments/strings).

5 years agorustc_typeck: correctly compute `Substs` for `Res::SelfCtor`.
Eduard-Mihai Burtescu [Sun, 16 Jun 2019 14:23:41 +0000 (17:23 +0300)]
rustc_typeck: correctly compute `Substs` for `Res::SelfCtor`.

5 years agosubmodules: update clippy from be5d17fe to 868f168c
Matthias Krüger [Tue, 18 Jun 2019 13:43:41 +0000 (15:43 +0200)]
submodules: update clippy from be5d17fe to 868f168c

Changes:
````
rustup https://github.com/rust-lang/rust/pull/61836/
fix suggestion for floating points inequality
````

5 years agoMake MaybeUninit #[repr(transparent)]
Michael Bradshaw [Wed, 12 Jun 2019 02:04:02 +0000 (19:04 -0700)]
Make MaybeUninit #[repr(transparent)]

Tracking issue: #60405

5 years agoAuto merge of #61927 - RalfJung:miri, r=oli-obk
bors [Tue, 18 Jun 2019 11:18:45 +0000 (11:18 +0000)]
Auto merge of #61927 - RalfJung:miri, r=oli-obk

update miri

Tests fail since https://github.com/rust-lang/rust/pull/61885, this should fix that.

r? @oli-obk

5 years agoAuto merge of #61822 - JohnTitor:add-long-e0592, r=GuillaumeGomez,Centril
bors [Tue, 18 Jun 2019 08:30:38 +0000 (08:30 +0000)]
Auto merge of #61822 - JohnTitor:add-long-e0592, r=GuillaumeGomez,Centril

Add explanation for E0592

This is a part of #61137

r? @GuillaumeGomez

5 years agoresolve/expand: Move expansion info setting to a single earlier point
Vadim Petrochenkov [Tue, 18 Jun 2019 07:48:44 +0000 (10:48 +0300)]
resolve/expand: Move expansion info setting to a single earlier point

5 years agohygiene: Avoid some unnecessary `ExpnInfo` clones
Vadim Petrochenkov [Mon, 17 Jun 2019 22:36:44 +0000 (01:36 +0300)]
hygiene: Avoid some unnecessary `ExpnInfo` clones

5 years agosyntax: Move `default_transparency` into `ExpnInfo`
Vadim Petrochenkov [Mon, 17 Jun 2019 20:55:22 +0000 (23:55 +0300)]
syntax: Move `default_transparency` into `ExpnInfo`

5 years agosyntax: Introduce `default`/`with_unstable` constructors for `ExpnInfo`
Vadim Petrochenkov [Mon, 17 Jun 2019 19:18:56 +0000 (22:18 +0300)]
syntax: Introduce `default`/`with_unstable` constructors for `ExpnInfo`

5 years agoresolve: Avoid creating fresh syntax extensions for all non-macro attributes
Vadim Petrochenkov [Mon, 17 Jun 2019 09:29:56 +0000 (12:29 +0300)]
resolve: Avoid creating fresh syntax extensions for all non-macro attributes

5 years agosyntax: Remove `DummyResolver`
Vadim Petrochenkov [Mon, 17 Jun 2019 08:10:48 +0000 (11:10 +0300)]
syntax: Remove `DummyResolver`

5 years agoallow_internal_unstable: Avoid some more allocations
Vadim Petrochenkov [Sun, 16 Jun 2019 21:31:46 +0000 (00:31 +0300)]
allow_internal_unstable: Avoid some more allocations

5 years agosyntax: Factor out common fields from `SyntaxExtension` variants
Vadim Petrochenkov [Sun, 16 Jun 2019 15:58:39 +0000 (18:58 +0300)]
syntax: Factor out common fields from `SyntaxExtension` variants

5 years agoupdate miri
Ralf Jung [Tue, 18 Jun 2019 06:14:03 +0000 (08:14 +0200)]
update miri

5 years agoAuto merge of #61864 - lzutao:ptr-null, r=sfackler
bors [Tue, 18 Jun 2019 05:16:26 +0000 (05:16 +0000)]
Auto merge of #61864 - lzutao:ptr-null, r=sfackler

Make use of `ptr::null(_mut)` instead of casting zero

There are few places that I don't replace the zero casting pointer with `ptr::null`
or `ptr::null_mut`:
```bash
% git grep -E '[ ([{]0 as \*'
src/libcore/ptr/mod.rs:216:pub const fn null<T>() -> *const T { 0 as *const T }
src/libcore/ptr/mod.rs:231:pub const fn null_mut<T>() -> *mut T { 0 as *mut T }
src/test/run-pass/consts/const-cast-ptr-int.rs:12:static a: TestStruct = TestStruct{x: 0 as *const u8};
src/test/ui/issues/issue-45730.rs:5:    let x: *const _ = 0 as *const _; //~ ERROR cannot cast
src/test/ui/issues/issue-45730.rs:8:    let x = 0 as *const i32 as *const _ as *mut _; //~ ERROR cannot cast
src/test/ui/issues/issue-45730.stderr:14:LL |     let x: *const _ = 0 as *const _;
src/test/ui/issues/issue-45730.stderr:24:LL |     let x = 0 as *const i32 as *const _ as *mut _;
src/test/ui/lint/lint-forbid-internal-unsafe.rs:15:    println!("{}", evil!(*(0 as *const u8)));
src/test/ui/order-dependent-cast-inference.rs:5:    let mut y = 0 as *const _;
src/test/ui/order-dependent-cast-inference.stderr:4:LL |     let mut y = 0 as *const _;
```

r? @sfackler

5 years agoAuto merge of #61771 - ehuss:update-cargo, r=alexcrichton
bors [Tue, 18 Jun 2019 02:17:17 +0000 (02:17 +0000)]
Auto merge of #61771 - ehuss:update-cargo, r=alexcrichton

Update cargo

Update cargo

19 commits in 545f354259be4e9745ea00a524c0e4c51df01aa6..807429e1b6da4e2ec52488ef2f59e77068c31e1f
2019-05-23 17:45:30 +0000 to 2019-06-11 14:06:10 +0000
- Stabilize publish-lockfile. (rust-lang/cargo#7026)
- change package cache lock message (rust-lang/cargo#7029)
- Fix documenting an example. (rust-lang/cargo#7023)
- Fix nonconcurrent tests (rust-lang/cargo#6900)
- Update git2 crates for libgit2 0.28 (rust-lang/cargo#7018)
- fix bunch of clippy warnings (rust-lang/cargo#7019)
- Ignore remap-path-prefix in metadata hash. (rust-lang/cargo#6966)
- Don't synthesize feature diretives for non-optional deps (rust-lang/cargo#7010)
- Handle pipelined tests of libraries (rust-lang/cargo#7008)
- Import the cargo-vendor subcommand into Cargo (rust-lang/cargo#6869)
- Remove unnecessary outlives bounds (rust-lang/cargo#7000)
- Catch filename output collisions in rustdoc. (rust-lang/cargo#6998)
- the testing SAT solver was messed up by a refactor (rust-lang/cargo#6995)
- Add some hints to the docs for `cfg()` targets (rust-lang/cargo#6990)
- Test the Resolver against the varisat Library (rust-lang/cargo#6980)
- Update changelog. (rust-lang/cargo#6984)
- Update cache-messages tracking issue. (rust-lang/cargo#6987)
- zsh: Add --all-targets option to cargo-check and cargo-build (rust-lang/cargo#6985)
- Fix typo (rust-lang/cargo#6982)

5 years agoAuto merge of #61915 - Centril:rollup-oire3i8, r=Centril
bors [Mon, 17 Jun 2019 23:30:37 +0000 (23:30 +0000)]
Auto merge of #61915 - Centril:rollup-oire3i8, r=Centril

Rollup of 5 pull requests

Successful merges:

 - #61702 (test more variants of enum-int-casting)
 - #61836 (Replace some uses of NodeId with HirId)
 - #61885 (Help LLVM better optimize slice::Iter(Mut)::len)
 - #61893 (make `Weak::ptr_eq`s into methods)
 - #61908 (don't ICE on large files)

Failed merges:

r? @ghost

5 years agoExpose `VaListImpl` as the Rust equivalent of `__va_list_tag` and implement Clone...
Andrei Homescu [Mon, 25 Mar 2019 21:28:03 +0000 (14:28 -0700)]
Expose `VaListImpl` as the Rust equivalent of `__va_list_tag` and implement Clone for it.

5 years agoImprove wording
Yuki Okushi [Mon, 17 Jun 2019 22:53:27 +0000 (07:53 +0900)]
Improve wording

5 years agoBump libgit2-sys to get it to compile on i686-pc-windows-gnu.
Eric Huss [Mon, 17 Jun 2019 21:34:24 +0000 (14:34 -0700)]
Bump libgit2-sys to get it to compile on i686-pc-windows-gnu.

5 years agoAdd `syn` to workspace hack.
Eric Huss [Fri, 14 Jun 2019 05:35:27 +0000 (22:35 -0700)]
Add `syn` to workspace hack.

Cargo's syn now has the `full` feature, so add it here to keep it in sync.

5 years agoUpdate cargo
Eric Huss [Wed, 12 Jun 2019 14:37:30 +0000 (07:37 -0700)]
Update cargo

5 years agoRollup merge of #61908 - matklad:overflow, r=petrochenkov
Mazdak Farrokhzad [Mon, 17 Jun 2019 18:56:01 +0000 (20:56 +0200)]
Rollup merge of #61908 - matklad:overflow, r=petrochenkov

don't ICE on large files

This is an extremely marginal error, so the cost of properly threading
`Handler` everywhere just not seemed justified. However, it's useful
to panic when we create a file, and not when we slice strings with
overflown indexes somewhere in the guts of the compiler.

For this reason, while we provide safe `try_new_source_file`, we don't
change the existing public interface and just panic more or less
cleanly.

closes #61904

r? @petrochenkov

5 years agoRollup merge of #61893 - chpio:weak_ptr_eq_methods, r=rkruppe
Mazdak Farrokhzad [Mon, 17 Jun 2019 18:56:00 +0000 (20:56 +0200)]
Rollup merge of #61893 - chpio:weak_ptr_eq_methods, r=rkruppe

make `Weak::ptr_eq`s into methods

This makes the `Weak::ptr_eq`s associated function into methods. There's no reason for methods on `Weak`s to be associated functions, as there is no `Dered` thus no possibility of a collision. Also: methods can be called using the associated function syntax.

follow up on https://github.com/rust-lang/rust/pull/55987
[Tracking issue for weak_ptr_eq](https://github.com/rust-lang/rust/issues/55981)

5 years agoRollup merge of #61885 - scottmcm:slice-iter-len-opt, r=rkruppe,RalfJung
Mazdak Farrokhzad [Mon, 17 Jun 2019 18:55:58 +0000 (20:55 +0200)]
Rollup merge of #61885 - scottmcm:slice-iter-len-opt, r=rkruppe,RalfJung

Help LLVM better optimize slice::Iter(Mut)::len

r? @RalfJung

I've included a codegen test that fails without this change as a demonstration of usefulness.

5 years agoRollup merge of #61836 - ljedrz:i_still_hate_node_ids, r=ljedrz
Mazdak Farrokhzad [Mon, 17 Jun 2019 18:55:57 +0000 (20:55 +0200)]
Rollup merge of #61836 - ljedrz:i_still_hate_node_ids, r=ljedrz

Replace some uses of NodeId with HirId

We are still using `NodeId` in some spots where we could use `HirId` instead; this PR targets some of these spots and removes some of the associated `hir::map` functions.

5 years agoRollup merge of #61702 - RalfJung:const-enum-cast, r=oli-obk
Mazdak Farrokhzad [Mon, 17 Jun 2019 18:55:55 +0000 (20:55 +0200)]
Rollup merge of #61702 - RalfJung:const-enum-cast, r=oli-obk

test more variants of enum-int-casting

As I learned in https://github.com/rust-lang/rust/pull/61673#issuecomment-500213506, there is a code path we are not testing yet. Looks like enum-int-casting with and without an intermediate let-binding is totally different.

EDIT: The reason for this is to get rid of the cycle in definitions such as:
```rust
enum Foo {
    A = 0,
    B = Foo::A as isize + 2,
}
```
This has historically been supported, so a hack adding special treatment to `Enum::Variant as _` was added to keep supporting it.

5 years agoremove superfluous space
ljedrz [Mon, 17 Jun 2019 18:31:26 +0000 (20:31 +0200)]
remove superfluous space

5 years agoAuto merge of #61781 - christianpoveda:intptrcast-model, r=oli-obk,RalfJung
bors [Mon, 17 Jun 2019 18:04:15 +0000 (18:04 +0000)]
Auto merge of #61781 - christianpoveda:intptrcast-model, r=oli-obk,RalfJung

prepare for Intptrcast model

https://github.com/rust-lang/rust/pull/61668 done right (I hope so). r? @RalfJung @oli-obk

5 years agofix rebase fallout
ljedrz [Mon, 17 Jun 2019 17:01:41 +0000 (19:01 +0200)]
fix rebase fallout

5 years agochange NodeId to HirId in some HIR docs
ljedrz [Sun, 16 Jun 2019 15:44:19 +0000 (17:44 +0200)]
change NodeId to HirId in some HIR docs

5 years agosimplify ICE handling in HirIdValidator
ljedrz [Sun, 16 Jun 2019 15:37:58 +0000 (17:37 +0200)]
simplify ICE handling in HirIdValidator

5 years agofix a HIR doc, simplify one HIR-related function call
ljedrz [Sun, 16 Jun 2019 15:30:53 +0000 (17:30 +0200)]
fix a HIR doc, simplify one HIR-related function call

5 years agorenamve hir_to_string to node_to_string
ljedrz [Sun, 16 Jun 2019 15:30:02 +0000 (17:30 +0200)]
renamve hir_to_string to node_to_string

5 years agoremove _by_hir_id if there is no NodeId counterpart
ljedrz [Fri, 14 Jun 2019 16:58:55 +0000 (18:58 +0200)]
remove _by_hir_id if there is no NodeId counterpart

5 years agoreplace some uses of NodeId with HirId
ljedrz [Fri, 14 Jun 2019 10:28:47 +0000 (12:28 +0200)]
replace some uses of NodeId with HirId

5 years agodon't ICE on large files
Aleksey Kladov [Mon, 17 Jun 2019 08:35:26 +0000 (11:35 +0300)]
don't ICE on large files

This is an extremely marginal error, so the cost of properly threading
`Handler` everywhere just not seemed justified. However, it's useful
to panic when we create a file, and not when we slice strings with
overflown indexes somewhere in the guts of the compiler.

For this reason, while we provide safe `try_new_source_file`, we don't
change the existing public interface and just panic more or less
cleanly.

5 years agoAuto merge of #61857 - Centril:typeck-extract-expr, r=oli-obk
bors [Mon, 17 Jun 2019 13:32:35 +0000 (13:32 +0000)]
Auto merge of #61857 - Centril:typeck-extract-expr, r=oli-obk

typeck: extract expr type-checking to expr.rs + refactor check_expr_kind

In this PR we:

- Extract out the bulk of the expression type checking logic from `check/mod.rs` into a new file `check/expr.rs`.

- Refactor `fn check_expr_kind` into several smaller functions.

More functions should probably be moved but I think this is a reasonable start.

r? @oli-obk
cc @eddyb

5 years agoMake use of `ptr::null(_mut)` instead of casting zero
Lzu Tao [Mon, 17 Jun 2019 10:52:37 +0000 (10:52 +0000)]
Make use of `ptr::null(_mut)` instead of casting zero

5 years agoAuto merge of #58508 - Zoxc:time-crate, r=oli-obk
bors [Mon, 17 Jun 2019 09:59:57 +0000 (09:59 +0000)]
Auto merge of #58508 - Zoxc:time-crate, r=oli-obk

Add a RUSTC_TIME env var to time rust crates during bootstrap

Blocked on https://github.com/rust-lang/cargo/pull/6674

r? @michaelwoerister

Example for rustc with https://github.com/rust-lang/rust/pull/58507:
```
  time: 0.460; rss: 94MB parsing
  time: 0.000; rss: 94MB attributes injection
  time: 0.000; rss: 94MB recursion limit
  time: 0.000; rss: 94MB crate injection
  time: 0.000; rss: 94MB plugin loading
  time: 0.000; rss: 94MB plugin registration
  time: 0.044; rss: 94MB pre ast expansion lint checks
    time: 1.999; rss: 316MB expand crate
    time: 0.000; rss: 316MB check unused macros
  time: 2.000; rss: 316MB expansion
  time: 0.000; rss: 316MB maybe building test harness
  time: 0.053; rss: 316MB AST validation
  time: 0.000; rss: 316MB maybe creating a macro crate
  time: 1.515; rss: 397MB name resolution
  time: 0.122; rss: 397MB complete gated feature checking
  time: 0.655; rss: 546MB lowering ast -> hir
  time: 0.136; rss: 550MB early lint checks
    time: 0.117; rss: 540MB validate hir map
  time: 0.606; rss: 540MB indexing hir
  time: 0.000; rss: 480MB load query result cache
  time: 0.000; rss: 478MB dep graph tcx init
  time: 0.000; rss: 478MB looking for entry point
  time: 0.001; rss: 478MB looking for plugin registrar
  time: 0.001; rss: 478MB looking for derive registrar
  time: 0.049; rss: 478MB loop checking
  time: 0.064; rss: 479MB attribute checking
  time: 0.166; rss: 484MB stability checking
  time: 0.699; rss: 566MB type collecting
  time: 0.006; rss: 566MB outlives testing
  time: 0.018; rss: 568MB impl wf inference
    time: 0.002; rss: 583MB unsafety checking
    time: 0.005; rss: 583MB orphan checking
  time: 0.227; rss: 583MB coherence checking
  time: 0.006; rss: 583MB variance testing
  time: 1.546; rss: 657MB wf checking
  time: 0.389; rss: 665MB item-types checking
  time: 13.999; rss: 837MB item-bodies checking
    time: 1.692; rss: 883MB rvalue promotion
    time: 0.067; rss: 883MB intrinsic checking
    time: 0.624; rss: 887MB match checking
    time: 0.246; rss: 889MB liveness checking
  time: 2.629; rss: 889MB misc checking
  time: 0.000; rss: 889MB borrow checking
  time: 16.754; rss: 1242MB MIR borrow checking
  time: 0.050; rss: 1242MB dumping chalk-like clauses
  time: 0.010; rss: 1242MB MIR effect checking
  time: 0.001; rss: 1242MB layout testing
    time: 0.829; rss: 1244MB privacy checking
    time: 0.183; rss: 1247MB death checking
    time: 0.100; rss: 1248MB unused lib feature checking
    time: 0.405; rss: 1250MB lint checking
  time: 1.518; rss: 1250MB misc checking
  time: 0.000; rss: 1250MB resolving dependency formats
    time: 2.928; rss: 1332MB write metadata
      time: 0.014; rss: 1332MB collecting roots
      time: 7.621; rss: 1488MB collecting mono items
    time: 7.635; rss: 1488MB monomorphization collection
    time: 0.557; rss: 1567MB codegen unit partitioning
    time: 27.971; rss: 2656MB codegen to LLVM IR
    time: 0.056; rss: 2656MB assert dep graph
    time: 0.000; rss: 2656MB serialize dep graph
  time: 195.414; rss: 2656MB codegen
  time: 0.000; rss: 329MB serialize work products
    time: 1.664; rss: 331MB running linker
  time: 1.965; rss: 331MB linking
[RUSTC-TIMING] rustc test:false 950.103
```
It doesn't really look like the times add up here.

5 years agoAuto merge of #61889 - matthiaskrgr:submodule_upd, r=oli-obk
bors [Mon, 17 Jun 2019 07:12:03 +0000 (07:12 +0000)]
Auto merge of #61889 - matthiaskrgr:submodule_upd, r=oli-obk

submodules: update clippy from 7b2a7a22 to be5d17fe

Changes:
````
Fix wrong lifetime of TyCtxt
Use replace_region_in_file for creating the lint list
Restructure rename tests
Register rename to the LintStore.
Rename REDUNDANT_STATIC_LIFETIME to REDUNDANT_STATIC_LIFETIMES.
Remove pub from RedundantStaticLifetime.visit_type function.
Rename const_static_lifetime to redundant_static_lifetime.
Merge StaticConst and StaticStatic lints into StaticConst.
Use RedundantStaticLifetime in StaticStatic.
Move type-checking logic in StaticConst to RedundantStaticLifetime.
Add lint for statics with explicit static lifetime.
minor fix
make it pass dogfood
run rustfmt
fix padding and put clippy someplaces
show default lint levels
group printing
prelim arg parse
move Lint static def into its own module
switch to sorted usable lints
Update clippy_dev/src/main.rs
initial commit for help improvements on clippy-driver
````

Fixes clippy toolstate.
r? @oli-obk

5 years agoAuto merge of #61892 - rijenkii:master, r=Centril
bors [Sun, 16 Jun 2019 23:25:12 +0000 (23:25 +0000)]
Auto merge of #61892 - rijenkii:master, r=Centril

weird-exprs: if if if if

The `if` keyword can be chained as long as there are enough `{...} else {...}` following, and they all return a `bool` (not required for the last one).
`if` expression can be also put inside a `match` arm guard, thus making the whole thing a little bit more confusing.

Discovered this clusterfunk while reading the reference because I have nothing better to do.

5 years agoAuto merge of #61347 - Centril:stabilize-underscore_const_names, r=petrochenkov
bors [Sun, 16 Jun 2019 20:33:55 +0000 (20:33 +0000)]
Auto merge of #61347 - Centril:stabilize-underscore_const_names, r=petrochenkov

Stabilize underscore_const_names in 1.37.0

You are now permitted to write:

```rust
const _: $type_expression = $term_expression;
```

That is, we change the [grammar of items](https://github.com/rust-lang-nursery/wg-grammar/blob/9d1984d7ae8d6576f943566539a31a5800644c57/grammar/item.lyg#L3-L42), as written in [the *`.lyg`* notation](https://github.com/rust-lang/gll/tree/263bf161dad903e67aa65fc591ced3cab18afa2a#grammar), from:

```java
Item = attrs:OuterAttr* vis:Vis? kind:ItemKind;
ItemKind =
  | ...
  | Const:{ "const" name:IDENT ":" ty:Type "=" value:Expr ";" }
  | ...
  ;
```

into:

```java
Item = attrs:OuterAttr* vis:Vis? kind:ItemKind;
ItemKind =
  | ...
  | Const:{ "const" name:IdentOrUnderscore ":" ty:Type "=" value:Expr ";" }
  | ...
  ;

IdentOrUnderscore =
  | Named:IDENT
  | NoName:"_"
  ;
```

r? @petrochenkov

5 years agoAuto merge of #61881 - glaubitz:sparc64-ffi-abi, r=petrochenkov
bors [Sun, 16 Jun 2019 17:48:24 +0000 (17:48 +0000)]
Auto merge of #61881 - glaubitz:sparc64-ffi-abi, r=petrochenkov

librustc_codegen_llvm: Use repr(transparent) for bitflags over repr(C…

…) (#61306)

In order to make sure that Rust's bitflags types are passed the same way in the Rust ABI as they are in the C ABI, we need to use the attribute repr(transparent) over the repr(C) attribute for the single-field bitflags structs in in order to prevent ABI mismatches. Thanks to Michael Karcher for finding this bug.

5 years agoAuto merge of #61754 - nikomatsakis:trait-caching-perf-3, r=pnkfelix
bors [Sun, 16 Jun 2019 14:58:05 +0000 (14:58 +0000)]
Auto merge of #61754 - nikomatsakis:trait-caching-perf-3, r=pnkfelix

create a "provisional cache" to restore performance in the case of cycles

Introduce a "provisional cache" that caches the results of auto trait resolutions but keeps them from entering the *main* cache until everything is ready. This turned out a bit more complex than I hoped, but I don't see another short term fix -- happy to take suggestions! In the meantime, it's very clear we need to rework the trait solver. This resolves the extreme performance slowdown experienced in #60846 -- I plan to add a perf.rust-lang.org regression test to track this.

Caveat: I've not run `x.py test` in full yet.

r? @pnkfelix
cc @arielb1

Fixes #60846