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

5 years agoend return statements and void expressions with a semicolon
ljedrz [Tue, 16 Oct 2018 09:14:10 +0000 (11:14 +0200)]
end return statements and void expressions with a semicolon

5 years agoUse forward compatible `FxHashMap` initialization
Oliver Scherer [Tue, 16 Oct 2018 08:39:48 +0000 (10:39 +0200)]
Use forward compatible `FxHashMap` initialization

5 years agoAuto merge of #55067 - ljedrz:generic_iterator_related_improvements, r=petrochenkov
bors [Tue, 16 Oct 2018 07:04:10 +0000 (07:04 +0000)]
Auto merge of #55067 - ljedrz:generic_iterator_related_improvements, r=petrochenkov

A few iterator-related improvements

- typeck: don't collect into a vector when unnecessary
- create only one vector when winnowing candidates
- change a cloning map to `into_iter`

5 years agoExtract localStorage tests out into a helper method; use in getCurrentValue()
Roy Wellington Ⅳ [Tue, 16 Oct 2018 03:38:51 +0000 (20:38 -0700)]
Extract localStorage tests out into a helper method; use in getCurrentValue()

1. Extract the tests for whether or not we have workable localStorage out into
   a helper method, so it can be more easily reused
2. Use it in getCurrentValue() too, for the same reasons, as suggested in code
   review

5 years agoAuto merge of #55023 - euclio:llvm-error-handler, r=cuviper
bors [Tue, 16 Oct 2018 02:06:26 +0000 (02:06 +0000)]
Auto merge of #55023 - euclio:llvm-error-handler, r=cuviper

Exit with code 101 on fatal codegen errors

Fixes #54992.

This PR installs a custom fatal error handler that prints the error from LLVM and exits with 101. There should be no visible change in the output from LLVM. This allows distinguishing a fatal LLVM error with a compilation error by exit code.

This PR also modifies the LLVM codegen backend to ICE instead of emitting a fatal error when encountering a LLVM worker thread panic for the same reason.

r? @cuviper

5 years agoAdd test for #34229
Esteban Küber [Mon, 15 Oct 2018 21:17:54 +0000 (14:17 -0700)]
Add test for #34229

5 years agofix mir-opt test
Niko Matsakis [Mon, 15 Oct 2018 16:27:01 +0000 (12:27 -0400)]
fix mir-opt test

5 years agopacify the mercilous tidy
Niko Matsakis [Mon, 15 Oct 2018 13:31:38 +0000 (09:31 -0400)]
pacify the mercilous tidy

(long lines)

5 years agoupdate tests
Niko Matsakis [Mon, 15 Oct 2018 10:14:08 +0000 (06:14 -0400)]
update tests

5 years agoavoid type variables in the self-type
Niko Matsakis [Thu, 11 Oct 2018 22:23:23 +0000 (18:23 -0400)]
avoid type variables in the self-type

5 years agopass along `user_self_ty`
Niko Matsakis [Fri, 12 Oct 2018 00:38:23 +0000 (20:38 -0400)]
pass along `user_self_ty`

5 years agohandle user-self-type for def-ids
Niko Matsakis [Thu, 11 Oct 2018 22:06:30 +0000 (18:06 -0400)]
handle user-self-type for def-ids

5 years agopull the common code across user-ty variants up top
Niko Matsakis [Thu, 11 Oct 2018 21:43:05 +0000 (17:43 -0400)]
pull the common code across user-ty variants up top

5 years agointroduce a more expressive `UserSubsts`
Niko Matsakis [Thu, 11 Oct 2018 21:18:51 +0000 (17:18 -0400)]
introduce a more expressive `UserSubsts`

5 years agointroduce `FnDef` and `AdtDef` to `UserTypeAnnotation`
Niko Matsakis [Wed, 10 Oct 2018 21:28:33 +0000 (17:28 -0400)]
introduce `FnDef` and `AdtDef` to `UserTypeAnnotation`

5 years agointroduce a `UserTypeAnnotation` enum
Niko Matsakis [Wed, 10 Oct 2018 21:07:10 +0000 (17:07 -0400)]
introduce a `UserTypeAnnotation` enum

5 years agomove `force_instantiate_unchecked` to be local to `nll_relate` code
Niko Matsakis [Wed, 10 Oct 2018 19:34:23 +0000 (15:34 -0400)]
move `force_instantiate_unchecked` to be local to `nll_relate` code

5 years agoextract `type_relate` into the inference context as `nll_relate`
Niko Matsakis [Mon, 15 Oct 2018 20:21:37 +0000 (16:21 -0400)]
extract `type_relate` into the inference context as `nll_relate`

The name is not great. Nor is the existence of this code great.  It
should be merged with the main "type relating code" at some point.

5 years agorework `relate_type_and_user_type` to use type inference variables
Niko Matsakis [Wed, 10 Oct 2018 19:10:05 +0000 (15:10 -0400)]
rework `relate_type_and_user_type` to use type inference variables

We used to use a kind of "home-grown" variant where we tracked the
value of each canonical variable.

5 years agomake `instantiate_canonical_with_fresh_inference_vars` public again
Niko Matsakis [Mon, 15 Oct 2018 20:21:41 +0000 (16:21 -0400)]
make `instantiate_canonical_with_fresh_inference_vars` public again

This used to be public, then I made it private in a previous PR, but
there really wasn't a strong need for that.

5 years agomake `TypeRelating` take an infcx again
Niko Matsakis [Wed, 10 Oct 2018 18:56:24 +0000 (14:56 -0400)]
make `TypeRelating` take an infcx again

At some point, I had thought to use this code to handle equality
comparisons for the `IfEq` verify bounds; at that point, we might not
have had an infcx to talk about. But we wound up doing "SCC
representatives" instead, so that's fine.

5 years agoadd `force_instantiate_unchecked` method
Niko Matsakis [Wed, 10 Oct 2018 18:42:56 +0000 (14:42 -0400)]
add `force_instantiate_unchecked` method

5 years agorename to `user_substs_applied_to_def` for consistency
Niko Matsakis [Tue, 9 Oct 2018 20:43:57 +0000 (16:43 -0400)]
rename to `user_substs_applied_to_def` for consistency

5 years agoAuto merge of #55095 - Manishearth:rollup, r=Manishearth
bors [Mon, 15 Oct 2018 19:50:50 +0000 (19:50 +0000)]
Auto merge of #55095 - Manishearth:rollup, r=Manishearth

Rollup of 11 pull requests

Successful merges:

 - #54820 (Closes #54538: `unused_patterns` lint)
 - #54963 (Cleanup rustc/session)
 - #54991 (add test for #23189)
 - #55025 (Add missing lifetime fragment specifier to error message.)
 - #55047 (doc: make core::fmt::Error example more simple)
 - #55048 (Don't collect to vectors where unnecessary)
 - #55060 (clarify pointer add/sub function safety concerns)
 - #55062 (Make EvalContext::step public again)
 - #55066 (Fix incorrect link in println! documentation)
 - #55081 (Deduplicate tests)
 - #55088 (Update rustc documentation link)

Failed merges:

r? @ghost

5 years agoAdd comments to remind everyone to keep the `get_vtable` impls in sync
Oliver Scherer [Fri, 12 Oct 2018 15:08:36 +0000 (17:08 +0200)]
Add comments to remind everyone to keep the `get_vtable` impls in sync

5 years agoUplift some comments to doc comments
Oliver Scherer [Fri, 12 Oct 2018 14:59:55 +0000 (16:59 +0200)]
Uplift some comments to doc comments

5 years agoSynchronize get_vtable with the `codegen_llvm` one
Oliver Scherer [Fri, 12 Oct 2018 14:45:17 +0000 (16:45 +0200)]
Synchronize get_vtable with the `codegen_llvm` one

5 years agoDeduplicate vtables within a single evaluation
Oliver Scherer [Fri, 12 Oct 2018 14:10:16 +0000 (16:10 +0200)]
Deduplicate vtables within a single evaluation

5 years agoRollup merge of #55088 - juchiast:master, r=varkor
Manish Goregaokar [Mon, 15 Oct 2018 17:15:23 +0000 (10:15 -0700)]
Rollup merge of #55088 - juchiast:master, r=varkor

Update rustc documentation link

link: http://manishearth.github.io/rust-internals-docs/rustc/
link: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/
5 years agoRollup merge of #55081 - sinkuu:dedup_test, r=Manishearth
Manish Goregaokar [Mon, 15 Oct 2018 17:15:22 +0000 (10:15 -0700)]
Rollup merge of #55081 - sinkuu:dedup_test, r=Manishearth

Deduplicate tests

* [`ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-4`](https://github.com/rust-lang/rust/blob/0c665e20db6c61de8f741bca3ca7660e679885c0/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.rs)
and [`ex3-both-anon-regions-both-are-structs-3`](https://github.com/rust-lang/rust/blob/0c665e20db6c61de8f741bca3ca7660e679885c0/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.rs)
* [`ui/lint/lint-group-style`](https://github.com/rust-lang/rust/blob/0c665e20db6c61de8f741bca3ca7660e679885c0/src/test/ui/lint/lint-group-style.rs) and [`lint-group-nonstandard-style`](https://github.com/rust-lang/rust/blob/0c665e20db6c61de8f741bca3ca7660e679885c0/src/test/ui/lint/lint-group-nonstandard-style.rs)

5 years agoRollup merge of #55066 - iaz3:patch-1, r=sfackler
Manish Goregaokar [Mon, 15 Oct 2018 17:15:21 +0000 (10:15 -0700)]
Rollup merge of #55066 - iaz3:patch-1, r=sfackler

Fix incorrect link in println! documentation

The eprintln! link was incorrectly linking to eprint! instead

5 years agoRollup merge of #55062 - bjorn3:ecx-step-public, r=oli-obk
Manish Goregaokar [Mon, 15 Oct 2018 17:15:20 +0000 (10:15 -0700)]
Rollup merge of #55062 - bjorn3:ecx-step-public, r=oli-obk

Make EvalContext::step public again

This is needed for priroda

Fixes #55061

5 years agoRollup merge of #55060 - jannic:patch-1, r=joshtriplett
Manish Goregaokar [Mon, 15 Oct 2018 17:15:19 +0000 (10:15 -0700)]
Rollup merge of #55060 - jannic:patch-1, r=joshtriplett

clarify pointer add/sub function safety concerns

Ralf Jung made the same changes to the offset functions' documentation
in commit fb089156. As add/sub just call offset, the same limitation
applies here, as well.

I did not copy the whole explanation ("In particular, the resulting pointer may *not* be used to access a different allocated object [...]") because I'd consider that as being too repetitive. The documentation of add/sub already refers to the offset function, so people interested in the details can look it up, there.
But changing 'an object' to 'the same object' is a small change which improves clarity a lot.

5 years agoRollup merge of #55048 - ljedrz:begone_vecc, r=estebank
Manish Goregaokar [Mon, 15 Oct 2018 17:15:17 +0000 (10:15 -0700)]
Rollup merge of #55048 - ljedrz:begone_vecc, r=estebank

Don't collect to vectors where unnecessary

This removes 3 vector allocations and a call to `cloned()`.

5 years agoRollup merge of #55047 - tshepang:simple, r=alexcrichton
Manish Goregaokar [Mon, 15 Oct 2018 17:15:16 +0000 (10:15 -0700)]
Rollup merge of #55047 - tshepang:simple, r=alexcrichton

doc: make core::fmt::Error example more simple

5 years agoRollup merge of #55025 - ehuss:missing-lifetime-err-msg, r=petrochenkov
Manish Goregaokar [Mon, 15 Oct 2018 17:15:15 +0000 (10:15 -0700)]
Rollup merge of #55025 - ehuss:missing-lifetime-err-msg, r=petrochenkov

Add missing lifetime fragment specifier to error message.

A very minor issue, `lifetime` was missing from the error list.
I left `literal` in the list, even though it is unstable. It looks like it may stabilize soon anyways.

5 years agoRollup merge of #54991 - euclio:issue-23189, r=tmandry
Manish Goregaokar [Mon, 15 Oct 2018 17:15:13 +0000 (10:15 -0700)]
Rollup merge of #54991 - euclio:issue-23189, r=tmandry

add test for #23189

Fixes #23189

5 years agoRollup merge of #54963 - ljedrz:cleanup_rustc_session, r=varkor
Manish Goregaokar [Mon, 15 Oct 2018 17:15:12 +0000 (10:15 -0700)]
Rollup merge of #54963 - ljedrz:cleanup_rustc_session, r=varkor

Cleanup rustc/session

- improve allocations
- improve common patterns
- use `to_owned` when no string conversion is needed
- move `const`s up to improve readability
- whitespace & formatting improvements

5 years agoRollup merge of #54820 - kleimkuhler:issue-54538-unused_patterns-lint, r=nikomatsakis
Manish Goregaokar [Mon, 15 Oct 2018 17:15:11 +0000 (10:15 -0700)]
Rollup merge of #54820 - kleimkuhler:issue-54538-unused_patterns-lint, r=nikomatsakis

Closes #54538: `unused_patterns` lint

Closes #54538

r? @nikomatsakis

5 years agoAuto merge of #54858 - nikomatsakis:universes-refactor-2, r=scalexm
bors [Mon, 15 Oct 2018 16:46:55 +0000 (16:46 +0000)]
Auto merge of #54858 - nikomatsakis:universes-refactor-2, r=scalexm

second round of refactorings for universes

A second round of (what I believe to be) "no functional change" refactorings, taken from my universes branch.

r? @scalexm

5 years agoremove the sub/super terminology for universes
Niko Matsakis [Mon, 8 Oct 2018 11:17:36 +0000 (07:17 -0400)]
remove the sub/super terminology for universes

Instead, we talk about:

- creating the "next" universe
- universes "extending" one another
- and `u1.can_name(u2)`, meaning that `u1` contains all names from `u2`

5 years agopacify the mercilous tidy with rustfmt
Niko Matsakis [Mon, 8 Oct 2018 10:59:37 +0000 (06:59 -0400)]
pacify the mercilous tidy with rustfmt

5 years agoremove dead iterator code
Niko Matsakis [Fri, 28 Sep 2018 19:52:54 +0000 (15:52 -0400)]
remove dead iterator code

5 years agohide `SmallCanonicalVarValues` in `OriginalQueryValues` struct
Niko Matsakis [Wed, 26 Sep 2018 19:49:41 +0000 (15:49 -0400)]
hide `SmallCanonicalVarValues` in `OriginalQueryValues` struct

5 years agoconvert `UniverseIndex` into a `newtype_index!`
Niko Matsakis [Wed, 26 Sep 2018 17:55:54 +0000 (13:55 -0400)]
convert `UniverseIndex` into a `newtype_index!`

5 years agomake `UniverseIndex` hashable, rename "sub-" to "superuniverse"
Niko Matsakis [Wed, 26 Sep 2018 16:27:01 +0000 (12:27 -0400)]
make `UniverseIndex` hashable, rename "sub-" to "superuniverse"

The only name was silly. U1 can contain everything from U0 *plus* more
things.

5 years agocontrol canonicalization with a trait vs bools
Niko Matsakis [Wed, 26 Sep 2018 14:18:33 +0000 (10:18 -0400)]
control canonicalization with a trait vs bools