Commit Graph

84907 Commits

Author SHA1 Message Date
Oliver Scherer
8180e1b54c Check the type of statics and constants for Sizedness 2018-10-16 17:01:24 +02:00
Felix S. Klock II
3587ff58cc 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`.)
2018-10-16 16:58:08 +02:00
Felix S. Klock II
57c467824b 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...)
2018-10-16 16:58:08 +02:00
Felix S. Klock II
d0416cc093 Add helper method to determine if local had ever been initialized at current point in flow. 2018-10-16 16:58:08 +02:00
Felix S. Klock II
bc61541423 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.
2018-10-16 16:57:34 +02:00
Felix S. Klock II
44a2f681a9 Add Place::base_local method and improve doc for Place::local to clarify why we need the former. 2018-10-16 16:57:26 +02:00
ljedrz
24b74b2744 end return statements and void expressions with a semicolon 2018-10-16 11:14:10 +02:00
Oliver Scherer
b1d3111ba2 Use forward compatible FxHashMap initialization 2018-10-16 10:39:48 +02:00
Havvy (Ryan Scheel)
8c186af538 [Rustc Book] Quotes around value in --cfg example 2018-10-16 00:13:05 -07:00
bors
5ea8eb55cd 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`
2018-10-16 07:04:10 +00:00
Havvy (Ryan Scheel)
8e10ea6829 [Rustc Book] Explain --cfg's arguments 2018-10-15 21:38:32 -07:00
Roy Wellington Ⅳ
8362aa2178 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
2018-10-15 20:39:16 -07:00
bors
df0d6ad9c1 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
2018-10-16 02:06:26 +00:00
Esteban Küber
70dd9ca5da Add test for #34229 2018-10-15 15:47:55 -07:00
Niko Matsakis
7ce2e7a5fa fix mir-opt test 2018-10-15 16:25:08 -04:00
Niko Matsakis
087d12972e pacify the mercilous tidy
(long lines)
2018-10-15 16:25:08 -04:00
Niko Matsakis
2e4e983356 update tests 2018-10-15 16:25:08 -04:00
Niko Matsakis
ba20806e46 avoid type variables in the self-type 2018-10-15 16:25:08 -04:00
Niko Matsakis
16a382407b pass along user_self_ty 2018-10-15 16:25:08 -04:00
Niko Matsakis
547182ea94 handle user-self-type for def-ids 2018-10-15 16:25:08 -04:00
Niko Matsakis
0e1d3624e9 pull the common code across user-ty variants up top 2018-10-15 16:25:08 -04:00
Niko Matsakis
1443ac0aa7 introduce a more expressive UserSubsts 2018-10-15 16:25:08 -04:00
Niko Matsakis
2a7fc227a6 introduce FnDef and AdtDef to UserTypeAnnotation 2018-10-15 16:24:46 -04:00
Niko Matsakis
aed6e4a083 introduce a UserTypeAnnotation enum 2018-10-15 16:24:46 -04:00
Niko Matsakis
e339e84fff move force_instantiate_unchecked to be local to nll_relate code 2018-10-15 16:24:46 -04:00
Niko Matsakis
e7ed997d87 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.
2018-10-15 16:24:46 -04:00
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