]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoEnable RISC-V atomic compare and swap
Jonathan Behrens [Sat, 26 Jan 2019 21:42:42 +0000 (16:42 -0500)]
Enable RISC-V atomic compare and swap

5 years agoAuto merge of #55194 - kennytm:rollup, r=kennytm
bors [Fri, 19 Oct 2018 09:29:48 +0000 (09:29 +0000)]
Auto merge of #55194 - kennytm:rollup, r=kennytm

Rollup of 7 pull requests

Successful merges:

 - #54300 (Updated RELEASES.md for 1.30.0)
 - #55013 ([NLL] Propagate bounds from generators)
 - #55071 (Fix ICE and report a human readable error)
 - #55144 (Cleanup resolve)
 - #55166 (Don't warn about parentheses on `match (return)`)
 - #55169 (Add a `copysign` function to f32 and f64)
 - #55178 (Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut())

5 years agoRollup merge of #55013 - matthewjasper:propagate-generator-bounds, r=nikomatsakis
kennytm [Fri, 19 Oct 2018 08:48:36 +0000 (16:48 +0800)]
Rollup merge of #55013 - matthewjasper:propagate-generator-bounds, r=nikomatsakis

[NLL] Propagate bounds from generators

This used to only be done for closures.

5 years agoRollup merge of #55178 - sdroege:stabilize-chunks-exact, r=alexcrichton
kennytm [Fri, 19 Oct 2018 03:03:35 +0000 (11:03 +0800)]
Rollup merge of #55178 - sdroege:stabilize-chunks-exact, r=alexcrichton

Stabilize slice::chunks_exact(), chunks_exact_mut(), rchunks(), rchunks_mut(), rchunks_exact(), rchunks_exact_mut()

Fixes #47115, #55177

5 years agoRollup merge of #55169 - raphlinus:copysign, r=joshtriplett
kennytm [Fri, 19 Oct 2018 03:03:34 +0000 (11:03 +0800)]
Rollup merge of #55169 - raphlinus:copysign, r=joshtriplett

Add a `copysign` function to f32 and f64

This patch adds a `copysign` function to the float primitive types. It is an exceptionally useful function for writing efficient numeric code, as it often avoids branches, is auto-vectorizable, and there are efficient intrinsics for most platforms.

I think this might work as-is, as the relevant `copysign` intrinsic is already used internally for the implementation of `signum`. It's possible that an implementation might be needed in japaric/libm for portability across all platforms, in which case I'll do that also.

Part of the work towards #55107

5 years agoRollup merge of #55166 - varkor:ret-parens, r=davidtwco
kennytm [Fri, 19 Oct 2018 03:03:33 +0000 (11:03 +0800)]
Rollup merge of #55166 - varkor:ret-parens, r=davidtwco

Don't warn about parentheses on `match (return)`

Fixes #55164.

5 years agoRollup merge of #55144 - ljedrz:cleanup_resolve, r=petrochenkov
kennytm [Fri, 19 Oct 2018 03:03:32 +0000 (11:03 +0800)]
Rollup merge of #55144 - ljedrz:cleanup_resolve, r=petrochenkov

Cleanup resolve

- improve/remove allocations
- `truncate` instead of `pop`ping in a loop
- improve common patterns

5 years agoRollup merge of #55071 - oli-obk:const_cast_🍨, r=RalfJung
kennytm [Fri, 19 Oct 2018 03:03:30 +0000 (11:03 +0800)]
Rollup merge of #55071 - oli-obk:const_cast_🍨, r=RalfJung

Fix ICE and report a human readable error

fixes #55063

r? @RalfJung

5 years agoAuto merge of #55040 - scalexm:param-env, r=nikomatsakis
bors [Fri, 19 Oct 2018 06:38:10 +0000 (06:38 +0000)]
Auto merge of #55040 - scalexm:param-env, r=nikomatsakis

Replace `ParamEnv` with a new type in chalk context.

I left a few FIXMEs.

r? @nikomatsakis

5 years agoRollup merge of #54300 - Aaronepower:master, r=Aaronepower
kennytm [Fri, 19 Oct 2018 03:03:25 +0000 (11:03 +0800)]
Rollup merge of #54300 - Aaronepower:master, r=Aaronepower

Updated RELEASES.md for 1.30.0

[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md)

r? @Mark-Simulacrum

cc @rust-lang/release

5 years agoAuto merge of #55004 - oli-obk:sized_static, r=cramertj
bors [Fri, 19 Oct 2018 00:22:25 +0000 (00:22 +0000)]
Auto merge of #55004 - oli-obk:sized_static, r=cramertj

Check the type of statics and constants for `Sized`ness

fixes #54410

5 years agoPropagate bounds from generators
Matthew Jasper [Fri, 12 Oct 2018 14:16:29 +0000 (15:16 +0100)]
Propagate bounds from generators

5 years agoAuto merge of #54979 - estebank:path-unsized, r=nikomatsakis
bors [Thu, 18 Oct 2018 21:42:21 +0000 (21:42 +0000)]
Auto merge of #54979 - estebank:path-unsized, r=nikomatsakis

Custom E0277 diagnostic for `Path`

r? @nikomatsakis we have a way to target `Path` exclusively, we need to identify the correct text to show to consider #23286 fixed.

5 years agoAuto merge of #54976 - davidtwco:issue-52663-special-case-closures, r=nikomatsakis
bors [Thu, 18 Oct 2018 18:14:52 +0000 (18:14 +0000)]
Auto merge of #54976 - davidtwco:issue-52663-special-case-closures, r=nikomatsakis

NLL lacks various special case handling of closures

Part of #52663.

Firstly, this PR extends existing handling of closures to also support generators.

Second, this PR adds the note found in the AST when a closure is invoked twice and captures a variable by-value:

```text
note: closure cannot be invoked more than once because it moves the variable `dict` out of its environment
  --> $DIR/issue-42065.rs:16:29
   |
LL |         for (key, value) in dict {
   |                             ^^^^
```

r? @nikomatsakis
cc @pnkfelix

5 years agoImprove check to consider how value is used.
David Wood [Tue, 16 Oct 2018 17:37:01 +0000 (19:37 +0200)]
Improve check to consider how value is used.

5 years agoAdd by-value captured variable note on second use.
David Wood [Wed, 10 Oct 2018 23:19:55 +0000 (01:19 +0200)]
Add by-value captured variable note on second use.

This commit adds a note that was present in the AST borrow checker when
closures are invoked more than once and have captured variables
by-value.

5 years agoStabilize slice::rchunks(), rchunks_mut(), rchunks_exact(), rchunk_exact_mut()
Sebastian Dröge [Thu, 18 Oct 2018 15:48:02 +0000 (18:48 +0300)]
Stabilize slice::rchunks(), rchunks_mut(), rchunks_exact(), rchunk_exact_mut()

Fixes #55177

5 years agoStabilize slice::chunks_exact() and slice::chunks_exact_mut()
Sebastian Dröge [Thu, 18 Oct 2018 07:22:34 +0000 (10:22 +0300)]
Stabilize slice::chunks_exact() and slice::chunks_exact_mut()

Fixes #47115

5 years agoExtend closure special-casing for generators.
David Wood [Wed, 10 Oct 2018 19:56:17 +0000 (21:56 +0200)]
Extend closure special-casing for generators.

This commit extends existing special-casing of closures to highlight the
use of variables within generators that are causing the generator to
borrow them.

5 years agoAdd must_use on copysign
Raph Levien [Thu, 18 Oct 2018 15:35:09 +0000 (08:35 -0700)]
Add must_use on copysign

Added a #[must_use] annotation on copysign, per review feedback.

5 years agoAuto merge of #54580 - sdroege:rchunks, r=SimonSapin
bors [Thu, 18 Oct 2018 12:47:31 +0000 (12:47 +0000)]
Auto merge of #54580 - sdroege:rchunks, r=SimonSapin

Add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()

These work exactly like the normal chunks iterators but start creating
chunks from the end of the slice.

----

The new iterators were motivated by a [comment](https://github.com/rust-lang/rust/issues/47115#issuecomment-424141121) by @DutchGhost.

~~~This currently includes the commits from https://github.com/rust-lang/rust/pull/54537 to not have to rename things twice or have merge conflicts. I'll force-push a new version of the branch ones those are in master.~~~

Also the stabilization tracking issue is just some number right now. I'll create the corresponding issue once this is reviewed and otherwise mergeable.

cc @DutchGhost

5 years agoUpdated RELEASES.md for 1.30.0
Aaron Power [Mon, 17 Sep 2018 16:44:04 +0000 (17:44 +0100)]
Updated RELEASES.md for 1.30.0

5 years agoAuto merge of #54349 - GuillaumeGomez:no-example-lint, r=QuietMisdreavus
bors [Thu, 18 Oct 2018 09:53:29 +0000 (09:53 +0000)]
Auto merge of #54349 - GuillaumeGomez:no-example-lint, r=QuietMisdreavus

[rustdoc] Add lint for doc without codeblocks

Fixes #53805.

r? @QuietMisdreavus

5 years agoMake warnings into errors
varkor [Thu, 18 Oct 2018 09:35:01 +0000 (10:35 +0100)]
Make warnings into errors

5 years agoAdd slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()
Sebastian Dröge [Tue, 25 Sep 2018 22:35:54 +0000 (01:35 +0300)]
Add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()

These work exactly like the normal chunks iterators but start creating
chunks from the end of the slice.

See #55177 for the tracking issue

5 years agoAuto merge of #55171 - kennytm:rollup, r=kennytm
bors [Thu, 18 Oct 2018 07:02:11 +0000 (07:02 +0000)]
Auto merge of #55171 - kennytm:rollup, r=kennytm

Rollup of 18 pull requests

Successful merges:

 - #54646 (improve documentation on std::thread::sleep)
 - #54933 (Cleanup the rest of codegen_llvm)
 - #54964 (Run both lldb and gdb tests)
 - #55016 (Deduplicate some code and compile-time values around vtables)
 - #55031 (Improve verify_llvm_ir config option)
 - #55050 (doc std::fmt: the Python inspiration is already mentioned in precedin…)
 - #55077 (rustdoc: Use dyn keyword when rendering dynamic traits)
 - #55080 (Detect if access to localStorage is forbidden by the user's browser)
 - #55090 (regression test for move out of borrow via pattern)
 - #55102 (resolve: Do not skip extern prelude during speculative resolution)
 - #55104 (Add test for #34229)
 - #55111 ([Rustc Book] Explain --cfg's arguments)
 - #55122 (Cleanup mir/borrowck)
 - #55127 (Remove HybridBitSet::dummy)
 - #55128 (Fix LLVMRustInlineAsmVerify return type mismatch)
 - #55142 (miri: layout should not affect CTFE checks (outside of validation))
 - #55151 (Cleanup nll)
 - #55161 ([librustdoc] Disable spellcheck for search field)

5 years agoRollup merge of #55111 - Havvy:rustc-book-cfg-examples, r=GuillaumeGomez
kennytm [Thu, 18 Oct 2018 04:56:07 +0000 (12:56 +0800)]
Rollup merge of #55111 - Havvy:rustc-book-cfg-examples, r=GuillaumeGomez

[Rustc Book] Explain --cfg's arguments

I removed this from the reference since it's rustc specific, and noticed it wasn't well documented on the page that should document it well. It does seem to go against the grain of one line per command line flag though.

5 years agoRollup merge of #55161 - akxcv:rustdoc/disable-spellcheck, r=QuietMisdreavus,Guillaum...
kennytm [Thu, 18 Oct 2018 02:47:38 +0000 (10:47 +0800)]
Rollup merge of #55161 - akxcv:rustdoc/disable-spellcheck, r=QuietMisdreavus,GuillaumeGomez

[librustdoc] Disable spellcheck for search field

This disables spellchecking for the search field in the rustdoc web interface.

As someone who uses Safari to browse through Rust docs, spellchecking gets really annoying.

5 years agoRollup merge of #55151 - ljedrz:cleanup_nll, r=estebank
kennytm [Thu, 18 Oct 2018 02:47:37 +0000 (10:47 +0800)]
Rollup merge of #55151 - ljedrz:cleanup_nll, r=estebank

Cleanup nll

- improve allocations
- improve `format!` calls
- improve common patterns

5 years agoRollup merge of #55142 - RalfJung:miri-uninhabited-enum, r=oli-obk
kennytm [Thu, 18 Oct 2018 02:47:36 +0000 (10:47 +0800)]
Rollup merge of #55142 - RalfJung:miri-uninhabited-enum, r=oli-obk

miri: layout should not affect CTFE checks (outside of validation)

Either the enum has no valid discriminant, then the code later will catch that; or it does, then we shouldn't error out so early (absent enforcing validity).

Interestingly, the miri test suite still passes; my guess is we don't even get here for uninhabited types?

r? @oli-obk

5 years agoRollup merge of #55128 - varkor:LLVMRustInlineAsmVerify-return-bool, r=rkruppe
kennytm [Thu, 18 Oct 2018 02:47:34 +0000 (10:47 +0800)]
Rollup merge of #55128 - varkor:LLVMRustInlineAsmVerify-return-bool, r=rkruppe

Fix LLVMRustInlineAsmVerify return type mismatch

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

r? @rkruppe
cc @levex

5 years agoRollup merge of #55127 - ljedrz:simplify_hybridbitset, r=matthewjasper
kennytm [Thu, 18 Oct 2018 02:47:33 +0000 (10:47 +0800)]
Rollup merge of #55127 - ljedrz:simplify_hybridbitset, r=matthewjasper

Remove HybridBitSet::dummy

This simplifies some of the `HybridBitSet` code.

cc @nnethercote

5 years agoRollup merge of #55122 - ljedrz:cleanup_mir_borrowck, r=Mark-Simulacrum
kennytm [Thu, 18 Oct 2018 02:47:32 +0000 (10:47 +0800)]
Rollup merge of #55122 - ljedrz:cleanup_mir_borrowck, r=Mark-Simulacrum

Cleanup mir/borrowck

- remove a redundant `.clone()`
- a few string tweaks
- deduplicate assignments and `return`s
- simplify common patterns
- remove redundant `return`s

5 years agoRollup merge of #55104 - estebank:addtest, r=alexcrichton
kennytm [Thu, 18 Oct 2018 02:47:29 +0000 (10:47 +0800)]
Rollup merge of #55104 - estebank:addtest, r=alexcrichton

Add test for #34229

Fix #34229.

5 years agoRollup merge of #55102 - petrochenkov:trextra, r=nikomatsakis
kennytm [Thu, 18 Oct 2018 02:47:28 +0000 (10:47 +0800)]
Rollup merge of #55102 - petrochenkov:trextra, r=nikomatsakis

resolve: Do not skip extern prelude during speculative resolution

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

5 years agoRollup merge of #55090 - pnkfelix:issue-54597-regression-test, r=estebank
kennytm [Thu, 18 Oct 2018 02:47:27 +0000 (10:47 +0800)]
Rollup merge of #55090 - pnkfelix:issue-54597-regression-test, r=estebank

regression test for move out of borrow via pattern

regression test for issue #54597.

(We may have other tests that cover this, but I couldn't immediately find them associated with the PR that originally fixed the ICE here.)

5 years agoRollup merge of #55080 - thanatos:fix-localstorage-crash, r=GuillaumeGomez
kennytm [Thu, 18 Oct 2018 02:47:26 +0000 (10:47 +0800)]
Rollup merge of #55080 - thanatos:fix-localstorage-crash, r=GuillaumeGomez

Detect if access to localStorage is forbidden by the user's browser

If the user's cookie/persistent storage setting forbid access to `localStorage`, catch the exception and abort the access.

Currently, attempting to use the expand/contract links at the top of the page for structs/consts/etc. fails due to an unhandled error while accessing `localStorage`, if such access is forbidden, as the exception from the failed access propagates all the way out, interrupting the expand/contract. Instead, I would like to degrade gracefully; the access won't happen (the collapse/expand state won't get persisted) but the actual expanding/contracting of the item will go on to succeed.

Fixes #55079

5 years agoRollup merge of #55077 - ollie27:rustdoc_dyn_trait, r=QuietMisdreavus
kennytm [Thu, 18 Oct 2018 02:47:24 +0000 (10:47 +0800)]
Rollup merge of #55077 - ollie27:rustdoc_dyn_trait, r=QuietMisdreavus

rustdoc: Use dyn keyword when rendering dynamic traits

The dyn keyword has been stable for a while now so rustdoc should start using it.

r? @QuietMisdreavus

5 years agoRollup merge of #55050 - tshepang:repetition, r=steveklabnik
kennytm [Thu, 18 Oct 2018 02:47:23 +0000 (10:47 +0800)]
Rollup merge of #55050 - tshepang:repetition, r=steveklabnik

doc std::fmt: the Python inspiration is already mentioned in precedin…

…g paragraph

5 years agoRollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrum
kennytm [Thu, 18 Oct 2018 02:47:22 +0000 (10:47 +0800)]
Rollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrum

Improve verify_llvm_ir config option

LLVM IR verification has been disabled by default in #51230. However, the implementation doesn't quite match what was discussed in the discussion. This patch implements two changes:

* Make `verify_llvm_ir` influence the behavior of the compiled rustc binary, rather than just the rustc build system. That is, if `verify_llvm_ir=true`, even manual invocations of the built rustc will verify LLVM IR.
* Enable verification of LLVM IR in CI, for non-deploy and deploy-alt builds. This is similar to how LLVM assertions are handled.

5 years agoRollup merge of #55016 - oli-obk:vtables💥_vtables_everywhere, r=RalfJung
kennytm [Thu, 18 Oct 2018 02:47:21 +0000 (10:47 +0800)]
Rollup merge of #55016 - oli-obk:vtables💥_vtables_everywhere, r=RalfJung

Deduplicate some code and compile-time values around vtables

r? @RalfJung

5 years agoRollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakis
kennytm [Thu, 18 Oct 2018 02:47:20 +0000 (10:47 +0800)]
Rollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakis

Run both lldb and gdb tests

Currently lldb tests are run only on macOS, and gdb tests are only run
elsewhere.  This patch changes this to run tests depending on what is
available.

One test is changed, as it was previously marked as failing on macOS,
whereas really it is a generic failure with lldb.

Closes #54721

5 years agoRollup merge of #54933 - ljedrz:cleanup_codegen_llvm/misc, r=varkor
kennytm [Thu, 18 Oct 2018 02:47:18 +0000 (10:47 +0800)]
Rollup merge of #54933 - ljedrz:cleanup_codegen_llvm/misc, r=varkor

Cleanup the rest of codegen_llvm

- improve common patterns
- convert string literals with `to_owned`
- remove explicit `return`s
- whitespace & formatting improvements

5 years agoRollup merge of #54646 - vn971:fix_std_thread_sleep, r=frewsxcv
kennytm [Thu, 18 Oct 2018 02:47:17 +0000 (10:47 +0800)]
Rollup merge of #54646 - vn971:fix_std_thread_sleep, r=frewsxcv

improve documentation on std::thread::sleep

5 years agoFix inconsistent documentation
Raph Levien [Thu, 18 Oct 2018 04:09:55 +0000 (21:09 -0700)]
Fix inconsistent documentation

I improved the f32 version and made a copy-paste error for f64.

5 years agoAdd a `copysign` function to f32 and f64
Raph Levien [Thu, 18 Oct 2018 01:15:00 +0000 (18:15 -0700)]
Add a `copysign` function to f32 and f64

This patch adds a `copysign` function to the float primitive types.
It is an exceptionally useful function for writing efficient numeric
code, as it often avoids branches, is auto-vectorizable, and there
are efficient intrinsics for most platforms.

I think this might work as-is, as the relevant `copysign` intrinsic
is already used internally for the implementation of `signum`. It's
possible that an implementation might be needed in japaric/libm for
portability across all platforms, in which case I'll do that also.

Part of the work towards #55107

5 years agoAuto merge of #55134 - davidtwco:issue-55118, r=pnkfelix
bors [Wed, 17 Oct 2018 23:16:10 +0000 (23:16 +0000)]
Auto merge of #55134 - davidtwco:issue-55118, r=pnkfelix

NLL: change compare-mode=nll to use borrowck=migrate

Fixes #55118.

This PR is split into two parts:

The first commit is a minor change that fixes a flaw in the existing `borrowck=migrate` implementation whereby a lint that was promoted to an error in the AST borrow checker would result in the same lint from the NLL borrow checker being downgraded to a warning in migrate mode. This PR fixes this by ensuring lints are exempt from buffering in the NLL borrow checker.

The second commit updates `compiletest` to make the NLL compare mode use `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The third commit shows all the test output changes that result from this.

r? @pnkfelix

5 years agoDon't warn about parentheses on `match (return)`
varkor [Wed, 17 Oct 2018 22:51:01 +0000 (23:51 +0100)]
Don't warn about parentheses on `match (return)`

5 years ago[librustdoc] Disable spellcheck for search field
Alexander Komarov [Wed, 17 Oct 2018 20:58:21 +0000 (23:58 +0300)]
[librustdoc] Disable spellcheck for search field

5 years agonll: improve common patterns
ljedrz [Wed, 17 Oct 2018 14:58:12 +0000 (16:58 +0200)]
nll: improve common patterns

5 years agonll: improve format operations
ljedrz [Wed, 17 Oct 2018 14:54:17 +0000 (16:54 +0200)]
nll: improve format operations

5 years agonll: improve allocations
ljedrz [Wed, 17 Oct 2018 14:52:35 +0000 (16:52 +0200)]
nll: improve allocations

5 years agoresolve: improve/remove allocations
ljedrz [Wed, 17 Oct 2018 09:36:19 +0000 (11:36 +0200)]
resolve: improve/remove allocations

5 years agoresolve: improve common patterns
ljedrz [Wed, 17 Oct 2018 09:13:44 +0000 (11:13 +0200)]
resolve: improve common patterns

5 years agomir/borrowck: remove a redundant clone
ljedrz [Tue, 16 Oct 2018 13:33:03 +0000 (15:33 +0200)]
mir/borrowck: remove a redundant clone

5 years agomir/borrowck: remove redundant returns
ljedrz [Tue, 16 Oct 2018 13:25:18 +0000 (15:25 +0200)]
mir/borrowck: remove redundant returns

5 years agomir/borrowck: deduplicate assignments and returns
ljedrz [Tue, 16 Oct 2018 13:13:11 +0000 (15:13 +0200)]
mir/borrowck: deduplicate assignments and returns

5 years agomir/borrowck: a few string tweaks
ljedrz [Tue, 16 Oct 2018 13:10:59 +0000 (15:10 +0200)]
mir/borrowck: a few string tweaks

5 years agomir/borrowck: simplify common patterns
ljedrz [Tue, 16 Oct 2018 13:06:59 +0000 (15:06 +0200)]
mir/borrowck: simplify common patterns

5 years agoRe-use memory in `program_clauses_for_env`
scalexm [Sat, 13 Oct 2018 15:10:56 +0000 (17:10 +0200)]
Re-use memory in `program_clauses_for_env`

5 years agoImplement `InferenceTable::add_clauses`
scalexm [Sat, 13 Oct 2018 14:29:21 +0000 (16:29 +0200)]
Implement `InferenceTable::add_clauses`

5 years agoAdd tests for `program_clauses_for_env`
scalexm [Sat, 13 Oct 2018 14:23:42 +0000 (16:23 +0200)]
Add tests for `program_clauses_for_env`

5 years agoCategorize chalk clauses
scalexm [Fri, 12 Oct 2018 17:24:18 +0000 (19:24 +0200)]
Categorize chalk clauses

5 years agoAdd `FromEnv` for input types in the environment
scalexm [Thu, 11 Oct 2018 15:57:45 +0000 (17:57 +0200)]
Add `FromEnv` for input types in the environment

5 years agoImplement the `environment` query
scalexm [Thu, 11 Oct 2018 14:26:43 +0000 (16:26 +0200)]
Implement the `environment` query

5 years agoVisit tys in `program_clauses_for_env`
scalexm [Thu, 11 Oct 2018 12:40:14 +0000 (14:40 +0200)]
Visit tys in `program_clauses_for_env`

5 years agoUse `Environment` instead of `ty::ParamEnv` in chalk context
scalexm [Wed, 10 Oct 2018 15:14:33 +0000 (17:14 +0200)]
Use `Environment` instead of `ty::ParamEnv` in chalk context

5 years agoAuto merge of #54946 - estebank:iterator, r=varkor
bors [Wed, 17 Oct 2018 11:47:53 +0000 (11:47 +0000)]
Auto merge of #54946 - estebank:iterator, r=varkor

Add filtering option to `rustc_on_unimplemented` and reword `Iterator` E0277 errors

 - Add more targetting filters for arrays to `rustc_on_unimplemented` (Fix #53766)
 - Detect one element array of `Range` type, which is potentially a typo:
   `for _ in [0..10] {}` where iterating between `0` and `10` was intended.
   (Fix #23141)
 - Suggest `.bytes()` and `.chars()` for `String`.
 - Suggest borrowing or `.iter()` on arrays (Fix #36391)
 - Suggest using range literal when iterating on integers (Fix #34353)
 - Do not suggest `.iter()` by default (Fix #50773, fix #46806)
 - Add regression test (Fix #22872)

5 years agoAuto merge of #54941 - pnkfelix:issue-21232-reject-partial-reinit, r=nikomatsakis
bors [Wed, 17 Oct 2018 09:13:51 +0000 (09:13 +0000)]
Auto merge of #54941 - pnkfelix:issue-21232-reject-partial-reinit, r=nikomatsakis

reject partial init and reinit of uninitialized data

Reject partial initialization of uninitialized structured types (i.e. structs and tuples) and also reject partial *reinitialization* of such types.

Fix #54986

Fix #54499

cc #21232

5 years agoresolve: Do not skip extern prelude during speculative resolution
Vadim Petrochenkov [Mon, 15 Oct 2018 20:43:59 +0000 (23:43 +0300)]
resolve: Do not skip extern prelude during speculative resolution

5 years agolayout should not affect CTFE checks (outside of validation)
Ralf Jung [Wed, 17 Oct 2018 07:24:43 +0000 (09:24 +0200)]
layout should not affect CTFE checks (outside of validation)

5 years agoSquash closure cast error into fn ptr cast error
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer [Wed, 17 Oct 2018 07:04:10 +0000 (09:04 +0200)]
Squash closure cast error into fn ptr cast error

5 years agoAuto merge of #54939 - pnkfelix:issue-54478-dont-prefer-dynamic-in-doc-tests, r=Quiet...
bors [Wed, 17 Oct 2018 06:42:15 +0000 (06:42 +0000)]
Auto merge of #54939 - pnkfelix:issue-54478-dont-prefer-dynamic-in-doc-tests, r=QuietMisdreavus

rustdoc: don't prefer dynamic linking in doc tests

This is an attempt to address the regression in #54478

This may be a case where the cure is worse than the disease, at least in the short term...

cc @alexcrichton

5 years agoMove usableLocalStorage() above functions that make use of it
Roy Wellington Ⅳ [Wed, 17 Oct 2018 05:15:27 +0000 (22:15 -0700)]
Move usableLocalStorage() above functions that make use of it

5 years agoAuto merge of #54671 - petrochenkov:extpre2015, r=nikomatsakis
bors [Wed, 17 Oct 2018 01:59:28 +0000 (01:59 +0000)]
Auto merge of #54671 - petrochenkov:extpre2015, r=nikomatsakis

resolve: Scale back hard-coded extern prelude additions on 2015 edition

https://github.com/rust-lang/rust/pull/54404 stabilized `feature(extern_prelude)` on 2015 edition, including the hard-coded parts not passed with `--extern`.
First of all, I'd want to confirm that this is intended stabilization, rather than a part of the "extended beta" scheme that's going to be reverted before releasing stable.
(EDIT: to clarify - this is a question, I'm \*asking\* for confirmation, rather than give it.)

Second, on 2015 edition extern prelude is not so fundamentally tied to imports and is a mere convenience, so this PR scales them back to the uncontroversial subset.
The "uncontroversial subset" means that if libcore is injected it brings `core` into prelude, if libstd is injected it brings `std` and `core` into prelude.
On 2015 edition this can be implemented through the library prelude (rather than hard-coding in the compiler) right now, I'll do it in a follow-up PR.

UPDATE: The change is done for both 2015 and 2018 editions now as discussed below.

Closes https://github.com/rust-lang/rust/issues/53166

5 years agoSome new tests I added.
Felix S. Klock II [Thu, 11 Oct 2018 23:33:08 +0000 (01:33 +0200)]
Some new tests I added.

5 years agoAuto merge of #55093 - nikomatsakis:nll-issue-54574-multisegment-path, r=pnkfelix
bors [Tue, 16 Oct 2018 23:27:43 +0000 (23:27 +0000)]
Auto merge of #55093 - nikomatsakis:nll-issue-54574-multisegment-path, r=pnkfelix

nll type annotations in multisegment path

This turned out to be sort of tricky. The problem is that if you have a path like

```
<Foo<&'static u32>>::bar
```

and it comes from an impl like `impl<T> Foo<T>` then the self-type the user gave doesn't *directly* map to the substitutions that the impl wants. To handle this, then, we have to preserve not just the "user-given substs" we used to do, but also a "user-given self-ty", which we have to apply later. This PR makes those changes.

It also removes the code from NLL relate-ops that handled canonical variables and moves to use normal inference variables instead. This simplifies a few things and gives us a bit more flexibility (for example, I predict we are going to have to start normalizing at some point, and it would be easy now).

r? @matthewjasper -- you were just touching this code, do you feel comfortable reviewing this?

Fixes #54574

5 years agoUpdate output for borrowck=migrate compare mode.
David Wood [Tue, 16 Oct 2018 22:57:32 +0000 (00:57 +0200)]
Update output for borrowck=migrate compare mode.

This commit updates the test output for the updated NLL compare mode
that uses `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The
previous commit changes `compiletest` and this commit only updates
`.nll.stderr` files.

5 years agoChange NLL compare mode to borrowck=migrate.
David Wood [Tue, 16 Oct 2018 22:51:05 +0000 (00:51 +0200)]
Change NLL compare mode to borrowck=migrate.

This commit changes the NLL compare mode to pass `-Z borrowck=migrate`
rather than `-Z borrowck=nll` to better test what will be deployed. It
does not include the test output updates, as separation of these commits
makes reviewing simpler.

5 years agoDon't buffer lints.
David Wood [Tue, 16 Oct 2018 22:47:28 +0000 (00:47 +0200)]
Don't buffer lints.

When lints are emitted from the AST borrow checker, they do not signal
an error as it is not known at that time whether, due to attributes,
that lint will error or warn. This means that when lints are buffered
in the MIR they will always be downgraded, as the AST borrowck will not
have been marked as having errored, even if a lint was upgraded to
an error after being emitted from the AST borrowck. The simple solution
to this is to not buffer any lints from the MIR borrowck.

5 years agoadd ~ERROR annotations
Niko Matsakis [Tue, 16 Oct 2018 22:11:55 +0000 (18:11 -0400)]
add ~ERROR annotations

5 years agofix comment
Niko Matsakis [Tue, 16 Oct 2018 21:58:32 +0000 (17:58 -0400)]
fix comment

5 years agoAuto merge of #54486 - orium:obligation-forest-graphviz, r=nikomatsakis
bors [Tue, 16 Oct 2018 20:30:43 +0000 (20:30 +0000)]
Auto merge of #54486 - orium:obligation-forest-graphviz, r=nikomatsakis

Added graphviz visualization for obligation forests.

This can be a big help when debugging the trait resolver.

5 years agoRemove HybridBitSet::dummy
ljedrz [Tue, 16 Oct 2018 16:36:44 +0000 (18:36 +0200)]
Remove HybridBitSet::dummy

5 years agoChange Scalar to numeric cast
Esteban Küber [Mon, 15 Oct 2018 17:12:29 +0000 (10:12 -0700)]
Change Scalar to numeric cast

5 years agoAuto merge of #54251 - varkor:silence-bad_style, r=Manishearth
bors [Tue, 16 Oct 2018 18:01:41 +0000 (18:01 +0000)]
Auto merge of #54251 - varkor:silence-bad_style, r=Manishearth

Make `bad_style` a silent alias for `nonstandard_style`

Now only `nonstandard_style` is suggested in `rustc -W help`, but `bad_style` will not produce a warning. Closes #41646.

r? @Manishearth

5 years agoFix LLVMRustInlineAsmVerify return type mismatch
varkor [Tue, 16 Oct 2018 17:19:04 +0000 (18:19 +0100)]
Fix LLVMRustInlineAsmVerify return type mismatch

5 years agoAuto merge of #54937 - alexcrichton:update-stdsimd, r=nikomatsakis
bors [Tue, 16 Oct 2018 15:16:12 +0000 (15:16 +0000)]
Auto merge of #54937 - alexcrichton:update-stdsimd, r=nikomatsakis

Update stdsimd submodule

Should hopefully bring documentation for wasm intrinsics online!

5 years agoupdates to expected output for other ui tests.
Felix S. Klock II [Tue, 16 Oct 2018 15:10:04 +0000 (17:10 +0200)]
updates to expected output for other ui tests.

5 years agoupdates to existing ui/borrowck tests.
Felix S. Klock II [Tue, 16 Oct 2018 15:08:59 +0000 (17:08 +0200)]
updates to existing ui/borrowck tests.

5 years agoAdd ignore-compare-mode-nll to some run-pass tests that become compile-fail under...
Felix S. Klock II [Tue, 16 Oct 2018 15:07:41 +0000 (17:07 +0200)]
Add ignore-compare-mode-nll to some run-pass tests that become compile-fail under #54986.

5 years agoUpdate cargo submodule
Oliver Scherer [Tue, 16 Oct 2018 15:00:33 +0000 (17:00 +0200)]
Update cargo submodule

5 years agoAdd test for no_core statics
Oliver Scherer [Mon, 15 Oct 2018 18:48:25 +0000 (20:48 +0200)]
Add test for no_core statics

5 years agoUse platform independent types
Oliver Scherer [Sun, 14 Oct 2018 15:45:35 +0000 (17:45 +0200)]
Use platform independent types

5 years agoCheck the type of statics and constants for `Sized`ness
Oliver Scherer [Thu, 11 Oct 2018 16:02:00 +0000 (18:02 +0200)]
Check the type of statics and constants for `Sized`ness

5 years agoDon't complain re missing `mut` on attempt to partially initialize an uninitialized...
Felix S. Klock II [Tue, 16 Oct 2018 14:46:04 +0000 (16:46 +0200)]
Don't complain re missing `mut` on attempt to partially initialize an uninitialized struct.

Under the semantics of #54986 (our short term plan), the partial
initialization itself will signal an error. We don't need to add noise
to the output by also complaining about `mut`. (In particular, the
user may well revise their code in a way that does not require `mut`.)

5 years agoCleanup `fn is_mutable` by removing some unnecessary control-flow breaks.
Felix S. Klock II [Tue, 16 Oct 2018 13:50:44 +0000 (15:50 +0200)]
Cleanup `fn is_mutable` by removing some unnecessary control-flow breaks.

(This makes it a little easier to add instrumentation of the entry and
exit by adding `debug!` at the beginning and end, though note that the
function body *does* use the `?` operator...)

5 years agoAdd helper method to determine if local had ever been initialized at current point...
Felix S. Klock II [Tue, 16 Oct 2018 13:45:24 +0000 (15:45 +0200)]
Add helper method to determine if local had ever been initialized at current point in flow.

5 years agoMake us error consistently in issue #21232, to fix #54986.
Felix S. Klock II [Tue, 9 Oct 2018 21:14:31 +0000 (23:14 +0200)]
Make us error consistently in issue #21232, to fix #54986.

Treat attempt to partially intialize local `l` as uses of a `mut` in `let mut l;`, to fix #54499.

5 years agoAdd `Place::base_local` method and improve doc for `Place::local` to clarify why...
Felix S. Klock II [Tue, 16 Oct 2018 13:39:07 +0000 (15:39 +0200)]
Add `Place::base_local` method and improve doc for `Place::local` to clarify why we need the former.