Commit Graph

85108 Commits

Author SHA1 Message Date
Zack M. Davis
475be10dbd in which unused-parens suggestions heed what the user actually wrote
Aaron Hill pointed out that unnecessary parens around a macro call
(paradigmatically, `format!`) yielded a suggestion of hideous
macro-expanded code. (The slightly unusual choice of using the
pretty-printer to compose suggestions was quite recently commented on
in the commit message for 1081bbbfc ("abolish ICE when pretty-printing
async block"), but without any grounds to condemn it as a 𝘣𝘢𝘥
choice. Hill's report provides the grounds.) `span_to_snippet` is
fallable as far as the type system is concerned (because, who knows,
macros or something), so the pretty-printing can live on in the
oft-neglected `else` branch.

Resolves #55109.
2018-10-16 21:36:02 -07:00
bors
37ba1071c6 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
2018-10-17 01:59:28 +00:00
Felix S. Klock II
233fdb4b14 Some new tests I added. 2018-10-17 02:33:03 +02:00
François Mockers
4520b305ec and style fix 2018-10-17 01:29:07 +02:00
bors
01ca85becd 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
2018-10-16 23:27:43 +00:00
François Mockers
2ba567fc27 fix other tests failing due to change in case or new suggestion for extern crate 2018-10-17 01:21:40 +02:00
François Mockers
ad4cea408d apply review 2018-10-17 01:09:43 +02:00
David Wood
539404b77d
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.
2018-10-17 00:57:32 +02:00
David Wood
8b34881e97
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.
2018-10-17 00:51:05 +02:00
David Wood
d8db5299fa
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.
2018-10-17 00:47:28 +02:00
Niko Matsakis
b70b4a6814 add ~ERROR annotations 2018-10-16 18:11:55 -04:00
Niko Matsakis
1008539ca6 fix comment 2018-10-16 17:58:32 -04:00
Son
a70ef6a20b Seems like we don't have to refer the file anymore. 2018-10-17 08:03:12 +11:00
Son
f8550a499f Add doc for impl From for Waker 2018-10-17 07:59:38 +11:00
bors
bef62ccddb 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.
2018-10-16 20:30:43 +00:00
ljedrz
1dd92c4a70 Remove HybridBitSet::dummy 2018-10-16 22:14:07 +02:00
varkor
0982be7710 Remove outdated test 2018-10-16 19:52:35 +01:00
Esteban Küber
def0f544a3 Change Scalar to numeric cast 2018-10-16 11:04:42 -07:00
bors
8a7048b72b 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
2018-10-16 18:01:41 +00:00
varkor
f40932f106 Fix LLVMRustInlineAsmVerify return type mismatch 2018-10-16 18:22:25 +01:00
bors
99ab2f4071 Auto merge of #54937 - alexcrichton:update-stdsimd, r=nikomatsakis
Update stdsimd submodule

Should hopefully bring documentation for wasm intrinsics online!
2018-10-16 15:16:12 +00:00
varkor
fe09dbfcba Allow explicit matches on ! without warning 2018-10-16 16:12:05 +01:00
Felix S. Klock II
5b748434af updates to expected output for other ui tests. 2018-10-16 17:11:36 +02:00
Felix S. Klock II
b10beb3233 updates to existing ui/borrowck tests. 2018-10-16 17:11:33 +02:00
Felix S. Klock II
4229739038 Add ignore-compare-mode-nll to some run-pass tests that become compile-fail under #54986. 2018-10-16 17:07:41 +02:00
Oliver Scherer
10a01c1bcd Update cargo submodule 2018-10-16 17:01:24 +02:00
Oliver Scherer
fbbc73969b Add test for no_core statics 2018-10-16 17:01:24 +02:00
Oliver Scherer
4dcf49121c Use platform independent types 2018-10-16 17:01:24 +02:00
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
François Mockers
cac95ee11c #45829 when a renamed import conflict with a previous import 2018-10-16 08:22:32 +02: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