Commit Graph

85032 Commits

Author SHA1 Message Date
Niko Matsakis
b6a080e9d7 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.
2018-10-15 16:24:46 -04:00
Niko Matsakis
a3409a1640 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.
2018-10-15 16:24:31 -04:00
Niko Matsakis
ca52427d06 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.
2018-10-15 16:05:31 -04:00
Niko Matsakis
24bee005b6 add force_instantiate_unchecked method 2018-10-15 16:05:31 -04:00
Niko Matsakis
4b69edc19e rename to user_substs_applied_to_def for consistency 2018-10-15 16:05:31 -04:00
bors
46880f41b7 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
2018-10-15 19:50:50 +00:00
Oliver Scherer
c95ee9e91d Add comments to remind everyone to keep the get_vtable impls in sync 2018-10-15 21:00:17 +02:00
Oliver Scherer
ef3ece7444 Uplift some comments to doc comments 2018-10-15 20:59:15 +02:00
Oliver Scherer
8ac7fa414b Synchronize get_vtable with the codegen_llvm one 2018-10-15 20:59:15 +02:00
Oliver Scherer
80feed380d Deduplicate vtables within a single evaluation 2018-10-15 20:54:23 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
007390c21c
Add trailing newline to satisfy tidy 2018-10-15 20:30:11 +02:00
Oliver Scherer
2456f330d5 Try to trigger some error cases 2018-10-15 20:10:16 +02:00
Oliver Scherer
34052047cf Explain all casts in detail 2018-10-15 19:58:21 +02:00
Manish Goregaokar
562625dda2
Rollup merge of #55088 - juchiast:master, r=varkor
Update rustc documentation link

Old link: http://manishearth.github.io/rust-internals-docs/rustc/
New link: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/
2018-10-15 10:15:23 -07:00
Manish Goregaokar
4d837bef05
Rollup merge of #55081 - sinkuu:dedup_test, r=Manishearth
Deduplicate tests

* [`ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-4`](0c665e20db/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-4.rs)
and [`ex3-both-anon-regions-both-are-structs-3`](0c665e20db/src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-both-are-structs-3.rs)
* [`ui/lint/lint-group-style`](0c665e20db/src/test/ui/lint/lint-group-style.rs) and [`lint-group-nonstandard-style`](0c665e20db/src/test/ui/lint/lint-group-nonstandard-style.rs)
2018-10-15 10:15:22 -07:00
Manish Goregaokar
6993a051e7
Rollup merge of #55066 - iaz3:patch-1, r=sfackler
Fix incorrect link in println! documentation

The eprintln! link was incorrectly linking to eprint! instead
2018-10-15 10:15:21 -07:00
Manish Goregaokar
96ab4a89ee
Rollup merge of #55062 - bjorn3:ecx-step-public, r=oli-obk
Make EvalContext::step public again

This is needed for priroda

Fixes #55061
2018-10-15 10:15:20 -07:00
Manish Goregaokar
8e42f01f43
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.
2018-10-15 10:15:19 -07:00
Manish Goregaokar
2e8b61dce6
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()`.
2018-10-15 10:15:17 -07:00
Manish Goregaokar
dc87247538
Rollup merge of #55047 - tshepang:simple, r=alexcrichton
doc: make core::fmt::Error example more simple
2018-10-15 10:15:16 -07:00
Manish Goregaokar
78765e5244
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.
2018-10-15 10:15:15 -07:00
Manish Goregaokar
defcb164b1
Rollup merge of #54991 - euclio:issue-23189, r=tmandry
add test for #23189

Fixes #23189
2018-10-15 10:15:13 -07:00
Manish Goregaokar
3ffb16f6c6
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
2018-10-15 10:15:12 -07:00
Manish Goregaokar
7ba24e8fcf
Rollup merge of #54820 - kleimkuhler:issue-54538-unused_patterns-lint, r=nikomatsakis
Closes #54538: `unused_patterns` lint

Closes #54538

r? @nikomatsakis
2018-10-15 10:15:11 -07:00
bors
5a52983d69 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
2018-10-15 16:46:55 +00:00
Niko Matsakis
05f67ca1a2 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`
2018-10-15 11:42:07 -04:00
Niko Matsakis
f419077811 pacify the mercilous tidy with rustfmt 2018-10-15 11:42:07 -04:00
Niko Matsakis
be02f74ea9 remove dead iterator code 2018-10-15 11:42:07 -04:00
Niko Matsakis
6ace43cf77 hide SmallCanonicalVarValues in OriginalQueryValues struct 2018-10-15 11:42:07 -04:00
Niko Matsakis
da76b4d4e1 convert UniverseIndex into a newtype_index! 2018-10-15 11:42:07 -04:00
Niko Matsakis
460915be73 make UniverseIndex hashable, rename "sub-" to "superuniverse"
The only name was silly. U1 can contain everything from U0 *plus* more
things.
2018-10-15 11:42:07 -04:00
Niko Matsakis
28df2bf7b5 control canonicalization with a trait vs bools 2018-10-15 11:42:07 -04:00
bors
4f9b581f71 Auto merge of #54917 - varkor:unused-which, r=cramertj
Unused result warning: "X which must" ↦ "X that must"

Address a little grammatical faux pas in the unused result warning.
2018-10-15 14:16:45 +00:00
Niko Matsakis
42a661843c introduce canonical_var_for_region helper fn 2018-10-15 08:57:22 -04:00
Niko Matsakis
71caf8ae93 type_op/mod.rs: rustfmt 2018-10-15 08:57:22 -04:00
Niko Matsakis
bca294da1f rename QueryResult to QueryResponse
`Result` really sounds like the rustc result type
2018-10-15 08:57:22 -04:00
Niko Matsakis
fd046a2ede bundle up "canonical instantiation" with infcx creation 2018-10-15 08:57:22 -04:00
Niko Matsakis
110b3b971e canonicalizer.rs: rustfmt 2018-10-15 08:57:22 -04:00
Felix S. Klock II
481ad0ea35 regression test for issue #54597 2018-10-15 14:07:19 +02:00
bors
2a5de33193 Auto merge of #55084 - matthiaskrgr:clippy, r=oli-obk
submodules: update clippy from 9d337313 to 5afdf8b7

Should fix toolstate.

Changes:

````
fix for rustc master
mem_forget: fix syntax error in code sample
explicit_counter_loop fix #3308 false positive
new_ret_no_self test remove tool lints cfg flag
Added new_ret_no_self exception to clippy to pass dogfood tests
Removed new_ret_no_self tests from method.rs
new_ret_no_self correctly lint impl return
Removed unused variables
new_ret_no_self fix false positive for impl trait return with associated type self
new_ret_no_self corrected panic and added test stderr
new_ret_no_self added positive test cases
Fix some more `stutter` warnings
unused unit lint
Install Windows SDK 10.0 on travis
cmp_owned refactor
cmp_owned correct error message if rhs is deref
Add a comment reminding to update README if the default changes
Specify which categories are enabled by default
Only run markdown linter on linux
Move Travis Windows build to allowed failures
Add Travis windows build
Fix `doc_markdown` lints
Fix `stutter` lints
Fix `similar_names` warnings
cmp_owned current suggestion for multiple deref
cmp_owned add test for multiple dereference
Corrected single-character string constant used as pattern found in dogfood test
Fixes 3289, cmp_owned wording and false positive
````
2018-10-15 10:31:48 +00:00
Do Duy
e03d24e153
Update rustc documentation link 2018-10-15 15:54:29 +07:00
ljedrz
42ae9dc508 rustc/session: move consts up to improve readability 2018-10-15 10:19:16 +02:00
ljedrz
e5eb538563 rustc/session: use to_owned when no string conversion is needed 2018-10-15 10:19:16 +02:00
ljedrz
0b2e9f762a rustc/session: improve common patterns 2018-10-15 10:19:16 +02:00
ljedrz
675f00bfa8 rustc/session: improve allocations 2018-10-15 10:19:04 +02:00
ljedrz
942a79615b rustc/session: whitespace & formatting improvements 2018-10-15 10:17:21 +02:00
Roy Wellington Ⅳ
d4e2dcaff1 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
2018-10-14 23:47:38 -07:00
bors
42f401dd02 Auto merge of #55064 - RalfJung:miri-update, r=oli-obk
update miri

This pulls in the changes in miri to actually enable validation. So, the rustc test suite will let us know if anything we cover regresses in that regard. :)

r? @oli-obk
2018-10-15 06:36:23 +00:00
Matthias Krüger
5086280c3a submodules: update clippy from 9d337313 to 5afdf8b7
Changes:

````
fix for rustc master
mem_forget: fix syntax error in code sample
explicit_counter_loop fix #3308 false positive
new_ret_no_self test remove tool lints cfg flag
Added new_ret_no_self exception to clippy to pass dogfood tests
Removed new_ret_no_self tests from method.rs
new_ret_no_self correctly lint impl return
Removed unused variables
new_ret_no_self fix false positive for impl trait return with associated type self
new_ret_no_self corrected panic and added test stderr
new_ret_no_self added positive test cases
Fix some more `stutter` warnings
unused unit lint
Install Windows SDK 10.0 on travis
cmp_owned refactor
cmp_owned correct error message if rhs is deref
Add a comment reminding to update README if the default changes
Specify which categories are enabled by default
Only run markdown linter on linux
Move Travis Windows build to allowed failures
Add Travis windows build
Fix `doc_markdown` lints
Fix `stutter` lints
Fix `similar_names` warnings
cmp_owned current suggestion for multiple deref
cmp_owned add test for multiple dereference
Corrected single-character string constant used as pattern found in dogfood test
Fixes 3289, cmp_owned wording and false positive
````
2018-10-15 06:50:56 +02:00
bors
c40e2ac2b6 Auto merge of #55024 - alexcrichton:wasm-simd-by-val, r=estebank
rustc: Allow targets to specify SIMD args are by-val

The upcoming SIMD support in the wasm target is unique from the other
platforms where it's either unconditionally available or not available,
there's no halfway where a subsection of the program can use it but no
other parts of the program can use it. In this world it's valid for wasm
SIMD args to always be passed by value and there's no need to pass them
by reference.

This commit adds a new custom target specification option
`simd_types_indirect` which defaults to `true`, but the wasm backend
disables this and sets it to `false`.
2018-10-15 02:48:24 +00:00