]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #64296 - KodrAus:chore/iter_order_by, r=Centril
Mazdak Farrokhzad [Tue, 24 Sep 2019 21:45:19 +0000 (23:45 +0200)]
Rollup merge of #64296 - KodrAus:chore/iter_order_by, r=Centril

Document the unstable iter_order_by library feature

Tracking issue: #64295

Follow-up for: #62205

References the tracking issue and adds a page to the unstable book for the new unstable `iter_order_by` feature.

4 years agoRollup merge of #64016 - nnethercote:Compiler-fiddling, r=oli-obk
Mazdak Farrokhzad [Tue, 24 Sep 2019 21:45:17 +0000 (23:45 +0200)]
Rollup merge of #64016 - nnethercote:Compiler-fiddling, r=oli-obk

Streamline `Compiler`

A few commits to clean up `Compiler`.

r? @Zoxc

4 years agoRollup merge of #63934 - Aaron1011:fix/impl-trait-coherence, r=nikomatsakis
Mazdak Farrokhzad [Tue, 24 Sep 2019 21:45:15 +0000 (23:45 +0200)]
Rollup merge of #63934 - Aaron1011:fix/impl-trait-coherence, r=nikomatsakis

Fix coherence checking for impl trait in type aliases

**UPDATE**: This PR now treats all opaque types as remote. The original description appears below, but is no longer accurate.

Fixes #63677

[RFC 2071](https://github.com/rust-lang/rfcs/pull/2071) (impl-trait-existential-types) does not explicitly state how `type_alias_impl_trait` should interact with coherence. However, there's only one choice which makes sense - coherence should look at the underlying type (i.e. the *"defining"* type of the `impl Trait`) of the type alias, just like we do for non-`impl Trait` type aliases.

Specifically, `impl Trait` type aliases that resolve to a local type should be treated like a local type with respect to coherence (e.g. `impl Trait` type aliases which resolve to a foreign type should be treated as a foreign type, and those that resolve to a local type should be treated as a local type).

Since neither inherent impls nor direct trait impl (i.e. `impl MyType` or `impl MyTrait for MyType`) are allowed for type aliases, this usually does not come up. Before we ever attempt to do coherence checking, we will have errored out if an `impl Trait` type alias was used directly in an `impl` clause.

However, during trait selection, we sometimes need to prove bounds like `T: Sized` for some type `T`. If `T` is an impl trait type alias, this requires to know the coherence behavior for `impl Trait` type aliases when we perform coherence checking.

Note: Since determining the underlying type of an `impl Trait` type alias requires us to perform body type checking, this commit causes us to type check some bodies easier than we otherwise would have. However, since this is done through a query, this shouldn't cause any problems

For completeness, I've added an additional test of the coherence-related behavior of `impl Trait` type aliases.

cc https://github.com/rust-lang/rust/issues/63063

4 years agoRollup merge of #63356 - ali-raheem:issue#63183, r=KodrAus
Mazdak Farrokhzad [Tue, 24 Sep 2019 21:45:13 +0000 (23:45 +0200)]
Rollup merge of #63356 - ali-raheem:issue#63183, r=KodrAus

Issue#63183: Add fs::read_dir() and ReadDir warning about iterator order + example

As per https://github.com/rust-lang/rust/issues/63183

Add warning about iterator order to read_dir and ReadDir, add example of explicitly ordering direntrys.

4 years agoAdd additional tests for type alias impl trait coherence
Aaron Hill [Tue, 24 Sep 2019 14:01:14 +0000 (10:01 -0400)]
Add additional tests for type alias impl trait coherence

4 years agoFix coherence checking for impl trait in type aliases
Aaron Hill [Tue, 27 Aug 2019 01:32:14 +0000 (21:32 -0400)]
Fix coherence checking for impl trait in type aliases

Fixes #63677

RFC #2071 (impl-trait-existential-types) does not explicitly state how
impl trait type alises should interact with coherence. However, there's
only one choice which makes sense - coherence should look at the
underlying type (i.e. the 'defining' type of the impl trait) of the type
alias, just like we do for non-impl-trait type aliases.

Specifically, impl trait type alises which resolve to a local type
should be treated like a local type with respect to coherence (e.g.
impl trait type aliases which resolve to a forieign type should be
treated as a foreign type, and those that resolve to a local type should
be treated as a local type).

Since neither inherent impls nor direct trait impl (i.e. `impl MyType`
or `impl MyTrait for MyType`) are allowd for type aliases, this
usually does not come up. Before we ever attempt to do coherence
checking, we will have errored out if an impl trait type alias was used
directly in an 'impl' clause.

However, during trait selection, we sometimes need to prove bounds like
'T: Sized' for some type 'T'. If 'T' is an impl trait type alias, this
requires to know the coherence behavior for impl trait type aliases when
we perform coherence checking.

Note: Since determining the underlying type of an impl trait type alias
requires us to perform body type checking, this commit causes us to type
check some bodies easlier than we otherwise would have. However, since
this is done through a query, this shouldn't cause any problems

For completeness, I've added an additional test of the coherence-related
behavior of impl trait type aliases.

4 years agoAuto merge of #63770 - oli-obk:allow_internal_unstable, r=Centril
bors [Tue, 24 Sep 2019 10:58:41 +0000 (10:58 +0000)]
Auto merge of #63770 - oli-obk:allow_internal_unstable, r=Centril

Stabilize `str::len`, `[T]::len` and `str::as_bytes` as const fn

r? @Centril

cc @RalfJung

This also introduces a scheme for making certain feature gates legal in stabilized const fns

4 years agoStabilize `str::len`, `[T]::len`, `is_empty` and `str::as_bytes` as const fn
Oliver Scherer [Wed, 21 Aug 2019 00:23:46 +0000 (02:23 +0200)]
Stabilize `str::len`, `[T]::len`, `is_empty` and `str::as_bytes` as const fn

4 years agoAuto merge of #64316 - alexcrichton:cleanup-shim, r=Mark-Simulacrum
bors [Tue, 24 Sep 2019 06:41:15 +0000 (06:41 +0000)]
Auto merge of #64316 - alexcrichton:cleanup-shim, r=Mark-Simulacrum

Delete most of `src/bootstrap/bin/rustc.rs`

This commit is an attempt at deleting as much of the `rustc.rs` shim that we have in rustbuild as possible.  This shim predates `RUSTFLAGS` and is as old as rustbuild itself. While useful for quick hacks, it subverts Cargo's knowledge of `rustc`, makes it more difficult to build crates out of rustbuild, and is generally a hazard/code smell due to its architecture.

Additionally since the inception of this script we've added a number of features to Cargo such as profile overrides and `RUSTFLAGS`. This commit attempts to use these features of Cargo as much as possible to delete almost all of `src/bootstrap/bin/rustc.rs`. It's hoped that all new configuration for the Rust compiler can be codified in rustbuild rather than in this shim, allowing Cargo to have more knowledge about what's going on and making it a bit easier to reproduce builds outside of Cargo itself.

This was primarily motivated by some recent work on std-aware Cargo, and is also generally a cleanup of the script itself. This internally resulted in a number of refactorings of rustbuild itself, and the commits should be readable one-at-a-time instead of having to digest them all at once.

4 years agoFix rebase conflicts
Alex Crichton [Mon, 23 Sep 2019 16:35:50 +0000 (09:35 -0700)]
Fix rebase conflicts

4 years agoRemove `--enable-extended` from cross dist builder
Alex Crichton [Wed, 18 Sep 2019 19:34:19 +0000 (12:34 -0700)]
Remove `--enable-extended` from cross dist builder

Shouldn't have an effect on produced artifacts and otherwise is causing
issues where `-Zsave-analysis` is passed during tests but fails
compilation.

4 years agorustbuild: Pass `-Zsave-analysis` during tests
Alex Crichton [Tue, 17 Sep 2019 18:23:09 +0000 (11:23 -0700)]
rustbuild: Pass `-Zsave-analysis` during tests

This is needed to ensure that the crates during a normal build are
shared with the crates during testing, otherwise they'll end up hasing
differently and we'll recompile crates like `core` during tests.

4 years agoTweak libserialize allows
Alex Crichton [Mon, 16 Sep 2019 21:01:11 +0000 (14:01 -0700)]
Tweak libserialize allows

4 years agoNo need to remove target-specific RUSTFLAGS
Alex Crichton [Wed, 11 Sep 2019 15:06:25 +0000 (08:06 -0700)]
No need to remove target-specific RUSTFLAGS

Turns out Cargo favors RUSTFLAGS!

4 years agoAdd `#![deny(warnings)]` to internal tools
Alex Crichton [Tue, 10 Sep 2019 16:28:47 +0000 (09:28 -0700)]
Add `#![deny(warnings)]` to internal tools

4 years agoFix compiling libserialize tests
Alex Crichton [Tue, 10 Sep 2019 16:10:32 +0000 (09:10 -0700)]
Fix compiling libserialize tests

They've got new warnings turned on so they need more `#![allow]`

4 years agoStylistic changes
Alex Crichton [Tue, 10 Sep 2019 16:10:24 +0000 (09:10 -0700)]
Stylistic changes

4 years agoAdd some FIXME for future Cargo issues
Alex Crichton [Mon, 9 Sep 2019 17:34:31 +0000 (10:34 -0700)]
Add some FIXME for future Cargo issues

4 years agoMove handling of `-Cprefer-dynamic` into `builder.rs`
Alex Crichton [Mon, 9 Sep 2019 17:31:22 +0000 (10:31 -0700)]
Move handling of `-Cprefer-dynamic` into `builder.rs`

This logic is *super* old and can be tweaked and moved into `builder.rs`

4 years agoMove `--cfg bootstrap` out of `rustc.rs`
Alex Crichton [Mon, 9 Sep 2019 17:27:01 +0000 (10:27 -0700)]
Move `--cfg bootstrap` out of `rustc.rs`

Instead let's do this via `RUSTFLAGS` in `builder.rs`. Currently
requires a submodule update of `stdarch` to fix a problem with previous
compilers.

4 years agoMove handling of `RUSTC_PARALLEL_COMPILER` to `compile.rs`
Alex Crichton [Mon, 9 Sep 2019 17:22:24 +0000 (10:22 -0700)]
Move handling of `RUSTC_PARALLEL_COMPILER` to `compile.rs`

No longer needs to live in `rustc.rs`

4 years agoMove handling of `{MUSL,WASI}_ROOT` to `compile.rs`
Alex Crichton [Mon, 9 Sep 2019 17:21:15 +0000 (10:21 -0700)]
Move handling of `{MUSL,WASI}_ROOT` to `compile.rs`

No longer any need for them to live in `rustc.rs`!

4 years agoAllow adding `RUSTFLAGS` after `Builder::cargo`
Alex Crichton [Mon, 9 Sep 2019 17:17:38 +0000 (10:17 -0700)]
Allow adding `RUSTFLAGS` after `Builder::cargo`

This commit changes the return type of `Builder::cargo` to return a
builder that allows dynamically adding more `RUSTFLAGS` values
after-the-fact. While not used yet, this will later be used to delete
more of `rustc.rs`

4 years agoMove debuginfo level handling to `builder.rs`
Alex Crichton [Mon, 9 Sep 2019 16:49:48 +0000 (09:49 -0700)]
Move debuginfo level handling to `builder.rs`

4 years agoRemove duplication of `RUSTC_DEBUGINFO_MAP` in rustc.rs
Alex Crichton [Mon, 9 Sep 2019 16:43:22 +0000 (09:43 -0700)]
Remove duplication of `RUSTC_DEBUGINFO_MAP` in rustc.rs

4 years agoMove handling of `codegen-units` to `builder.rs`
Alex Crichton [Mon, 9 Sep 2019 16:42:56 +0000 (09:42 -0700)]
Move handling of `codegen-units` to `builder.rs`

4 years agoMove handling of internal lints to `build.rs`
Alex Crichton [Mon, 9 Sep 2019 16:31:42 +0000 (09:31 -0700)]
Move handling of internal lints to `build.rs`

4 years agoMove handling of some warnings to `builder.rs`
Alex Crichton [Mon, 9 Sep 2019 16:29:47 +0000 (09:29 -0700)]
Move handling of some warnings to `builder.rs`

4 years agoMove handling of `-Dwarnings` to `builder.rs`
Alex Crichton [Mon, 9 Sep 2019 16:28:07 +0000 (09:28 -0700)]
Move handling of `-Dwarnings` to `builder.rs`

4 years agobootstrap: Remove need for `RUSTC_RPATH` variable
Alex Crichton [Thu, 15 Aug 2019 20:58:30 +0000 (13:58 -0700)]
bootstrap: Remove need for `RUSTC_RPATH` variable

4 years agobootstrap: Handle target-specific cargo env vars
Alex Crichton [Mon, 9 Sep 2019 16:20:29 +0000 (09:20 -0700)]
bootstrap: Handle target-specific cargo env vars

This commit ensure that we handle target-specific env vars for RUSTFLAGS
through Cargo as well.

4 years agobootstrap: Move `RUSTC_CRT_STATIC` to `builder.rs`
Alex Crichton [Thu, 15 Aug 2019 20:57:09 +0000 (13:57 -0700)]
bootstrap: Move `RUSTC_CRT_STATIC` to `builder.rs`

4 years agobootstrap: Remove need for RUSTC_SAVE_ANALYSIS
Alex Crichton [Thu, 15 Aug 2019 20:54:36 +0000 (13:54 -0700)]
bootstrap: Remove need for RUSTC_SAVE_ANALYSIS

4 years agobootstrap: Remove usage of `RUSTC_TARGET_LINKER`
Alex Crichton [Thu, 15 Aug 2019 20:51:47 +0000 (13:51 -0700)]
bootstrap: Remove usage of `RUSTC_TARGET_LINKER`

Cargo has a native enviroment variable for this.

4 years agobootstrap: Move `-Zdual-proc-macros` to `builder.rs`
Alex Crichton [Thu, 15 Aug 2019 20:46:54 +0000 (13:46 -0700)]
bootstrap: Move `-Zdual-proc-macros` to `builder.rs`

4 years agobootstrap: Move `-Zexternal-macro-backtrace` to builder
Alex Crichton [Thu, 15 Aug 2019 20:46:07 +0000 (13:46 -0700)]
bootstrap: Move `-Zexternal-macro-backtrace` to builder

No need for this to be in `rustc.rs`

4 years agobootstrap: Move `RUSTC_BREAK_ON_ICE` out of shim
Alex Crichton [Thu, 15 Aug 2019 20:45:20 +0000 (13:45 -0700)]
bootstrap: Move `RUSTC_BREAK_ON_ICE` out of shim

This is always set, so let's just always set it elsewhere to reduce the
need for our `rustc.rs` shim.

4 years agobootstrap: Delete handling of `RUSTC_METADATA_SUFFIX`
Alex Crichton [Thu, 15 Aug 2019 20:44:22 +0000 (13:44 -0700)]
bootstrap: Delete handling of `RUSTC_METADATA_SUFFIX`

This is already handled by `__CARGO_DEFAULT_LIB_METADATA` so there's no
need to doubly do it.

4 years agobootstrap: Add a helper for managing RUSTFLAGS
Alex Crichton [Thu, 15 Aug 2019 20:42:39 +0000 (13:42 -0700)]
bootstrap: Add a helper for managing RUSTFLAGS

Most of `bootstrap/bin/rustc.rs` doesn't need to exist with the advent
of `RUSTFLAGS` (yes this is super old) so this starts by refactoring a
bit to make it easier locally in the `Builder::cargo` method to append
to `RUSTFLAGS` that gets down to rustc.

4 years agoAuto merge of #64272 - Mark-Simulacrum:parallel-handler, r=estebank
bors [Mon, 23 Sep 2019 06:38:23 +0000 (06:38 +0000)]
Auto merge of #64272 - Mark-Simulacrum:parallel-handler, r=estebank

Refactor librustc_errors::Handler API

This should be reviewed by-commit.

The last commit moves all fields into an inner struct behind a single lock; this is done to prevent possible deadlocks in a multi-threaded compiler, as well as inconsistent state observation.

4 years agoAuto merge of #64695 - Centril:rollup-t1xnl2c, r=Centril
bors [Mon, 23 Sep 2019 02:25:10 +0000 (02:25 +0000)]
Auto merge of #64695 - Centril:rollup-t1xnl2c, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #64294 (Fix `Stdio::piped` example code and lint)
 - #64670 (Cleanup syntax::ext::build)
 - #64674 (Propagate `types.err` in locals further to avoid spurious knock-down errors)
 - #64676 (Parse assoc type bounds in generic params and provide custom diagnostic)
 - #64677 (remove outdated comment)
 - #64679 (Infer consts more consistently)
 - #64688 (Clarify the "since" tidy check)

Failed merges:

r? @ghost

4 years agoDelete iter-order-by.md
Ashley Mannix [Mon, 23 Sep 2019 01:57:07 +0000 (11:57 +1000)]
Delete iter-order-by.md

4 years agoRollup merge of #64688 - rust-lang:clarify-tidy-since, r=alexreg
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:41 +0000 (00:36 +0200)]
Rollup merge of #64688 - rust-lang:clarify-tidy-since, r=alexreg

Clarify the "since" tidy check

r? @pietroalbini

cc @alexreg

4 years agoRollup merge of #64679 - skinny121:const-infer, r=varkor
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:40 +0000 (00:36 +0200)]
Rollup merge of #64679 - skinny121:const-infer, r=varkor

Infer consts more consistently

Moved some duplicated logic in `TypeRelation` methods into `super_combined_consts`. Before some `TypeRelation`s like `Lub` wasn't using `replace_if_possible`, meaning some inference types were staying around longer than they should be.

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

r? @varkor

4 years agoRollup merge of #64677 - tshepang:outdated, r=Mark-Simulacrum
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:38 +0000 (00:36 +0200)]
Rollup merge of #64677 - tshepang:outdated, r=Mark-Simulacrum

remove outdated comment

4 years agoRollup merge of #64676 - estebank:assoc-type-bound-in-generic, r=petrochenkov
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:37 +0000 (00:36 +0200)]
Rollup merge of #64676 - estebank:assoc-type-bound-in-generic, r=petrochenkov

Parse assoc type bounds in generic params and provide custom diagnostic

Fix #26271.

4 years agoRollup merge of #64674 - estebank:knock-down-the-wall, r=Centril
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:36 +0000 (00:36 +0200)]
Rollup merge of #64674 - estebank:knock-down-the-wall, r=Centril

Propagate `types.err` in locals further to avoid spurious knock-down errors

Fix #33575, fix #44504.

4 years agoRollup merge of #64670 - Mark-Simulacrum:ext-build-simplify, r=petrochenkov
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:34 +0000 (00:36 +0200)]
Rollup merge of #64670 - Mark-Simulacrum:ext-build-simplify, r=petrochenkov

Cleanup syntax::ext::build

I suspect most of this code could be inlined but I only removed the bits where the inlining didn't really hurt readability (i.e., method call -> function call) or the completely unused code.

4 years agoRollup merge of #64294 - wchargin:wchargin-stdio-piped-docs, r=Dylan-DPC
Mazdak Farrokhzad [Sun, 22 Sep 2019 22:36:33 +0000 (00:36 +0200)]
Rollup merge of #64294 - wchargin:wchargin-stdio-piped-docs, r=Dylan-DPC

Fix `Stdio::piped` example code and lint

Summary:
Invoking `rev` does not add a trailing newline when none is present in
the input (at least on my Debian). Nearby examples use `echo` rather
than `rev`, which probably explains the source of the discrepancy.

Also, a `mut` qualifier is unused.

Test Plan:
Copy the code block into <https://play.rust-lang.org> with a `fn main`
wrapper, and run it. Note that it compiles and runs cleanly; prior to
this commit, it would emit an `unused_mut` warning and then panic.

wchargin-branch: stdio-piped-docs

4 years agoAuto merge of #64151 - estebank:binding-error, r=varkor
bors [Sun, 22 Sep 2019 22:34:22 +0000 (22:34 +0000)]
Auto merge of #64151 - estebank:binding-error, r=varkor

On obligation errors point at the unfulfilled binding when possible

CC #42855, #64130, #64135. Fix #61860.

4 years agofix nll tests
Esteban Küber [Sun, 22 Sep 2019 18:54:38 +0000 (11:54 -0700)]
fix nll tests

4 years agoAuto merge of #64604 - lzutao:clippyup, r=oli-obk
bors [Sun, 22 Sep 2019 18:33:14 +0000 (18:33 +0000)]
Auto merge of #64604 - lzutao:clippyup, r=oli-obk

Update clippy and rls

r? @oli-obk cc @Manishearth

4 years agoignore-x86 instead of ignore-musl
Esteban Küber [Sat, 21 Sep 2019 18:39:06 +0000 (11:39 -0700)]
ignore-x86 instead of ignore-musl

4 years agohack to avoid incorrect suggestion
Esteban Küber [Fri, 20 Sep 2019 22:02:36 +0000 (15:02 -0700)]
hack to avoid incorrect suggestion

4 years agoreview comments
Esteban Küber [Fri, 20 Sep 2019 21:29:39 +0000 (14:29 -0700)]
review comments

4 years agoPoint at type param when it's cause of unfulfilled obligation
Esteban Küber [Fri, 20 Sep 2019 18:58:20 +0000 (11:58 -0700)]
Point at type param when it's cause of unfulfilled obligation

4 years agoFix rebase
Esteban Küber [Wed, 18 Sep 2019 20:51:36 +0000 (13:51 -0700)]
Fix rebase

4 years agoignore musl target in tests to avoid issues with output differences
Esteban Küber [Mon, 16 Sep 2019 18:25:32 +0000 (11:25 -0700)]
ignore musl target in tests to avoid issues with output differences

4 years agoreview comments
Esteban Küber [Thu, 5 Sep 2019 06:41:51 +0000 (23:41 -0700)]
review comments

4 years agoPoint at correct span for parenthesized types
Esteban Küber [Thu, 5 Sep 2019 00:36:01 +0000 (17:36 -0700)]
Point at correct span for parenthesized types

4 years agoOn obligation errors point at the unfulfilled binding when possible
Esteban Küber [Wed, 4 Sep 2019 17:17:59 +0000 (10:17 -0700)]
On obligation errors point at the unfulfilled binding when possible

4 years agoClarify the "since" tidy check
Mazdak Farrokhzad [Sun, 22 Sep 2019 15:18:45 +0000 (17:18 +0200)]
Clarify the "since" tidy check

4 years agoUpdate rls to fix build error
Lzu Tao [Sat, 21 Sep 2019 05:28:47 +0000 (05:28 +0000)]
Update rls to fix build error

4 years agoUpdate clippy
Lzu Tao [Thu, 19 Sep 2019 08:32:31 +0000 (08:32 +0000)]
Update clippy

4 years agoAuto merge of #64669 - estebank:unreachable, r=Centril
bors [Sun, 22 Sep 2019 06:33:01 +0000 (06:33 +0000)]
Auto merge of #64669 - estebank:unreachable, r=Centril

Use span label instead of note in unreachable lint

Fix #64636.

4 years agoInfer consts consistently. Moved some logic into super_combined_consts,
ben [Sun, 22 Sep 2019 05:24:09 +0000 (17:24 +1200)]
Infer consts consistently. Moved some logic into super_combined_consts,
also removed some duplicated logic from TypeRelation methods.

4 years agoAuto merge of #64666 - Centril:rollup-tp98vlr, r=Centril
bors [Sun, 22 Sep 2019 02:44:28 +0000 (02:44 +0000)]
Auto merge of #64666 - Centril:rollup-tp98vlr, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #63907 (Add explanation to type mismatch involving type params and assoc types)
 - #64615 (rustbuild: Turn down compression on exe installers)
 - #64617 (rustbuild: Turn down compression on msi installers)
 - #64618 (rustbuild: Improve output of `dist` step)
 - #64619 (Fixes #63962. Hint about missing tuple parentheses in patterns)
 - #64634 (Update to LLVM 9.0.0)
 - #64635 (Allow using fn pointers in const fn with unleash miri)
 - #64660 (unify errors for tuple/struct variants)
 - #64664 (fully remove AstBuilder)

Failed merges:

r? @ghost

4 years agoreview comments: wording
Esteban Küber [Sun, 22 Sep 2019 01:57:37 +0000 (18:57 -0700)]
review comments: wording

4 years agoreview comments
Esteban Küber [Sun, 22 Sep 2019 00:28:07 +0000 (17:28 -0700)]
review comments

4 years agoremove outdated comment
Tshepang Lekhonkhobe [Sun, 22 Sep 2019 00:23:41 +0000 (02:23 +0200)]
remove outdated comment

4 years agoParse assoc type bounds in generic params and provide custom diagnostic
Esteban Küber [Sun, 22 Sep 2019 00:11:09 +0000 (17:11 -0700)]
Parse assoc type bounds in generic params and provide custom diagnostic

4 years agoreview comments
Esteban Küber [Sat, 21 Sep 2019 23:34:16 +0000 (16:34 -0700)]
review comments

4 years agoPropagate `types.err` in locals further to avoid spurious knock-down errors
Esteban Küber [Sat, 21 Sep 2019 23:31:27 +0000 (16:31 -0700)]
Propagate `types.err` in locals further to avoid spurious knock-down errors

4 years agoInline attribute constructors
Mark Rousskov [Sat, 21 Sep 2019 19:26:15 +0000 (15:26 -0400)]
Inline attribute constructors

4 years agoInline ty_infer
Mark Rousskov [Sat, 21 Sep 2019 19:05:31 +0000 (15:05 -0400)]
Inline ty_infer

4 years agoRemove unused code
Mark Rousskov [Sat, 21 Sep 2019 19:07:28 +0000 (15:07 -0400)]
Remove unused code

4 years agoDo not trigger unreachable lint in async body and Use span labels
Esteban Küber [Sat, 21 Sep 2019 19:33:02 +0000 (12:33 -0700)]
Do not trigger unreachable lint in async body and Use span labels

4 years agoRollup merge of #64664 - matklad:remove-ast-builder, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:22 +0000 (21:24 +0200)]
Rollup merge of #64664 - matklad:remove-ast-builder, r=Mark-Simulacrum

fully remove AstBuilder

The mentioned Cargo test is fixed in https://github.com/rust-lang/cargo/pull/7210

I think this can be removed now?

4 years agoRollup merge of #64660 - guanqun:unify-errors-for-tuple-struct, r=estebank
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:20 +0000 (21:24 +0200)]
Rollup merge of #64660 - guanqun:unify-errors-for-tuple-struct, r=estebank

unify errors for tuple/struct variants

fix #63983

4 years agoRollup merge of #64635 - gnzlbg:const_fn_ptr, r=oli-obk
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:19 +0000 (21:24 +0200)]
Rollup merge of #64635 - gnzlbg:const_fn_ptr, r=oli-obk

Allow using fn pointers in const fn with unleash miri

This allows using function pointers in const fns  when `-Zunleash-the-miri-within-you` is enabled.

If the call to the `const fn` happens in a `const`-context, the function pointer is required to point to a `const fn`:

```rust
fn non_const_fn() -> i32 { 42 }
const fn const_fn() -> i32 { 42 }
const fn foo(x: fn() -> i32) -> i32 { x() }

let x: i32 = foo(non_const_fn_ptr); // OK
let y: i32 = foo(const_fn_ptr); // OK
const X: i32 = foo(non_const_fn_ptr); // ERROR: `non_const_fn` is not `const fn`
const Y: i32 = foo(const_fn_ptr); // OK
```

r? @oli-obk

4 years agoRollup merge of #64634 - cuviper:llvm-9.0.0, r=alexcrichton
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:17 +0000 (21:24 +0200)]
Rollup merge of #64634 - cuviper:llvm-9.0.0, r=alexcrichton

Update to LLVM 9.0.0

4 years agoRollup merge of #64619 - sam09:fix-63962, r=Centril
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:16 +0000 (21:24 +0200)]
Rollup merge of #64619 - sam09:fix-63962, r=Centril

Fixes #63962. Hint about missing tuple parentheses in patterns

4 years agoRollup merge of #64618 - alexcrichton:improve-dist-output, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:15 +0000 (21:24 +0200)]
Rollup merge of #64618 - alexcrichton:improve-dist-output, r=Mark-Simulacrum

rustbuild: Improve output of `dist` step

* Pass `/Q` to `iscc` on Windows to supress the thousands of lines of
  output about compressing documentation.
* Print out what's happening before long steps
* Use `timeit` to print out timing information for long-running
  installer assemblies.
* Try to scope output of `Dist ...` to not also encompass actual build steps

4 years agoRollup merge of #64617 - alexcrichton:smaller-msi, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:13 +0000 (21:24 +0200)]
Rollup merge of #64617 - alexcrichton:smaller-msi, r=Mark-Simulacrum

rustbuild: Turn down compression on msi installers

This is the same as #64615 except applied to our MSI installers. The
same fix is applied effectively bringing these installers in line with
the gz tarball installers, which are about 3x faster to produce locally
and likely much faster to produce on CI.

4 years agoRollup merge of #64615 - alexcrichton:smaller-exe, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:12 +0000 (21:24 +0200)]
Rollup merge of #64615 - alexcrichton:smaller-exe, r=Mark-Simulacrum

rustbuild: Turn down compression on exe installers

The Windows dist builders are the slowest builders right now, and the
distribution phase of them is enormously slow clocking in at around 20
minutes to build all the related installers. This commit starts to
optimize these by turning down the compression level in the `exe`
installers. These aren't super heavily used so there's no great need for
them to be so ultra-compressed, so let's dial back the compression
parameters to get closer to the rest of our xz archives. This brings the
installer in line with the gz tarball installer locally, and also brings
the compression settings on par with the rest of our xz installers.

4 years agoRollup merge of #63907 - estebank:assoc-type-mismatch, r=oli-obk
Mazdak Farrokhzad [Sat, 21 Sep 2019 19:24:11 +0000 (21:24 +0200)]
Rollup merge of #63907 - estebank:assoc-type-mismatch, r=oli-obk

Add explanation to type mismatch involving type params and assoc types

CC #63711

4 years agoRemove constraints argument from path_all
Mark Rousskov [Sat, 21 Sep 2019 19:01:10 +0000 (15:01 -0400)]
Remove constraints argument from path_all

It was never used

4 years agofully remove AstBuilder
Aleksey Kladov [Sat, 21 Sep 2019 18:33:37 +0000 (21:33 +0300)]
fully remove AstBuilder

The mentioned Cargo test is fixed in https://github.com/rust-lang/cargo/pull/7210

4 years agoFixes #63962. Hint about missing tuple parentheses in patterns
Sam Radhakrishan [Thu, 19 Sep 2019 16:42:05 +0000 (22:12 +0530)]
Fixes #63962. Hint about missing tuple parentheses in patterns

4 years agounify errors for tuple/struct variants
Guanqun Lu [Sat, 21 Sep 2019 15:36:12 +0000 (23:36 +0800)]
unify errors for tuple/struct variants

fix #63983

4 years agorevert error message changes
gnzlbg [Sat, 21 Sep 2019 15:24:42 +0000 (17:24 +0200)]
revert error message changes

4 years agoremove feature
gnzlbg [Sat, 21 Sep 2019 14:09:38 +0000 (16:09 +0200)]
remove feature

4 years agoAuto merge of #64658 - Centril:rollup-9s3raz6, r=Centril
bors [Sat, 21 Sep 2019 14:02:02 +0000 (14:02 +0000)]
Auto merge of #64658 - Centril:rollup-9s3raz6, r=Centril

Rollup of 9 pull requests

Successful merges:

 - #64010 (Stabilize `param_attrs` in Rust 1.39.0)
 - #64136 (Document From trait for LhsExpr in parser)
 - #64342 (factor out pluralisation remains after #64280)
 - #64347 (Add long error explanation for E0312)
 - #64621 (Add Compatibility Notes to RELEASES.md for 1.38.0)
 - #64632 (remove the extra comma after the match arm)
 - #64640 (No home directory on vxWorks)
 - #64641 (Exempt extern "Rust" from improper_ctypes)
 - #64642 (Fix the span used to suggest avoiding for-loop moves)

Failed merges:

r? @ghost

4 years agoRollup merge of #64642 - cuviper:move-for-loop-snippet, r=varkor
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:35 +0000 (16:01 +0200)]
Rollup merge of #64642 - cuviper:move-for-loop-snippet, r=varkor

Fix the span used to suggest avoiding for-loop moves

It was using the snippet from the "use" span, which often renders the
same, but with closures that snippet is on the start of the closure
where the value is captured. We should be using the snippet from the
span where it was moved into the `for` loop, which is `move_span`.

Fixes #64559.

4 years agoRollup merge of #64641 - cuviper:extern-rust-ctypes, r=estebank
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:34 +0000 (16:01 +0200)]
Rollup merge of #64641 - cuviper:extern-rust-ctypes, r=estebank

Exempt extern "Rust" from improper_ctypes

It should be fine for Rust ABIs to involve any Rust type.

Fixes #64593.

4 years agoRollup merge of #64640 - Wind-River:master, r=alexcrichton
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:32 +0000 (16:01 +0200)]
Rollup merge of #64640 - Wind-River:master, r=alexcrichton

No home directory on vxWorks

r? @alexcrichton

4 years agoRollup merge of #64632 - guanqun:patch-1, r=jonas-schievink
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:31 +0000 (16:01 +0200)]
Rollup merge of #64632 - guanqun:patch-1, r=jonas-schievink

remove the extra comma after the match arm

This would follow the same coding style as all the other match arms in this file.

4 years agoRollup merge of #64621 - XAMPPRocky:relnotes, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:30 +0000 (16:01 +0200)]
Rollup merge of #64621 - XAMPPRocky:relnotes, r=Mark-Simulacrum

Add Compatibility Notes to RELEASES.md for 1.38.0

### [Rendered](https://github.com/XAMPPRocky/rust/blob/relnotes/RELEASES.md)

r? @Mark-Simulacrum

4 years agoRollup merge of #64347 - GuillaumeGomez:E0312, r=oli-obk
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:28 +0000 (16:01 +0200)]
Rollup merge of #64347 - GuillaumeGomez:E0312, r=oli-obk

Add long error explanation for E0312

Part of #61137.

4 years agoRollup merge of #64342 - glorv:master, r=varkor
Mazdak Farrokhzad [Sat, 21 Sep 2019 14:01:26 +0000 (16:01 +0200)]
Rollup merge of #64342 - glorv:master, r=varkor

factor out pluralisation remains after #64280

there are two case that doesn't not match the original macro pattern at [here](https://github.com/rust-lang/rust/blob/master/src/librustc_lint/unused.rs#L146) and [here](https://github.com/rust-lang/rust/blob/master/src/libsyntax/parse/diagnostics.rs#L539) as the provided param is already a bool or the check condition is not `x != 1`, so I change the macro accept a boolean expr instead of number to fit all the cases.

@Centril  please review

Fixes #64238.