Commit Graph

100593 Commits

Author SHA1 Message Date
David Wood ccbf2b76a6 resolve: prohibit foreign statics w/ generics
This commit modifies resolve to disallow foreign statics that use
parent generics.

`improper_ctypes` is not written to support type parameters, as these
are normally disallowed before the lint is run. Thus, type parameters in
foreign statics must be prohibited before the lint.

The only other case where this *could* have occured is in functions,
but typeck prohibits this with a "foreign items may not have type
parameters" error - a similar error did not exist for statics, because
statics cannot have type parameters, but they can use any
type parameters that are in scope (which isn't the case for functions).

Signed-off-by: David Wood <david@davidtw.co>
2019-10-08 18:46:24 +01:00
bors 2748a9fd93 Auto merge of #65209 - Centril:rollup-tzc0j87, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #64404 (Add long error explanation for E0495)
 - #64918 (Add long error explanation for E0551)
 - #65102 (Disable stack probe when thread sanitizer is enabled)
 - #65120 (Correctly estimate the required space for string in `StyledBuffer::prepend`)
 - #65145 (When suggesting assoc function with type params, include turbofish)
 - #65162 (Remove loaded_from_cache map from DepGraph)
 - #65176 (Remove query-related macros)
 - #65179 (Add long error explanation for E0567)

Failed merges:

r? @ghost
2019-10-08 17:31:35 +00:00
Esteban Küber d0eea6ff6d review comments 2019-10-08 09:56:05 -07:00
Ben Lewis 16b7f44b07 Update feature gate error message
Co-Authored-By: varkor <github@varkor.com>
2019-10-09 05:10:00 +13:00
ben 50ea5f4535 Fix reify_fn_ptr test as we now pretty print const function pointers. 2019-10-09 05:10:00 +13:00
ben 9677cbe82e Refactor pretty print const to use a big match statement 2019-10-09 05:10:00 +13:00
ben 43badf9b1d Substitute and normalize all types of consts within collect const 2019-10-09 05:10:00 +13:00
ben cf3b561cea Gate use of raw and function pointers in const generics behind
const_compare_raw_pointers.
2019-10-09 05:10:00 +13:00
ben a59eb6d554 Pretty print function pointer const values. 2019-10-09 05:10:00 +13:00
ben 2afd277bc3 Fix calling function pointer const parameters. Also fixes inference of
function pointer const parameters.
2019-10-09 05:10:00 +13:00
Esteban Küber ac9025c197 Call Expr::peel_drop_temps() from more places for more accurate suggestions 2019-10-08 08:42:26 -07:00
Esteban Küber d84c4cd718 Ignore ExprKind::DropTemps for some ref suggestions 2019-10-08 08:26:42 -07:00
Mazdak Farrokhzad 3246ab2427 Rollup merge of #65179 - GuillaumeGomez:long-err-explanation-E0567, r=davidtwco
Add long error explanation for E0567

Part of #61137.
2019-10-08 15:45:34 +02:00
Mazdak Farrokhzad 0d17de89ba Rollup merge of #65176 - nnethercote:rm-query-macros, r=michaelwoerister
Remove query-related macros

The query system has a few macros that only have one or two call sites, and I find they hurt readability. This PR removes them.

r? @michaelwoerister
2019-10-08 15:45:32 +02:00
Mazdak Farrokhzad f2dc3467f4 Rollup merge of #65162 - Mark-Simulacrum:no-cache-loading-map, r=michaelwoerister
Remove loaded_from_cache map from DepGraph

It's now unused, even with -Zquery-dep-graph

From https://github.com/rust-lang/rust/pull/63756/files#r316039379 -- it'll simplify that PR to get this landed separately so we can just remove some of the code that it touches.

r? @Zoxc or @michaelwoerister
2019-10-08 15:45:31 +02:00
Mazdak Farrokhzad 58bfe3b0ec Rollup merge of #65145 - estebank:turbofish-assoc-fn-call, r=varkor
When suggesting assoc function with type params, include turbofish

Fix https://github.com/rust-lang/rust/issues/61412, fix https://github.com/rust-lang/rust/issues/61411.
2019-10-08 15:45:29 +02:00
Mazdak Farrokhzad 153d3c3ea7 Rollup merge of #65120 - AnthonyMikh:fix_65119, r=estebank
Correctly estimate the required space for string in `StyledBuffer::prepend`

Fix #65119

r? @estebank
2019-10-08 15:45:28 +02:00
Mazdak Farrokhzad 3c5f8a1da0 Rollup merge of #65102 - tmiasko:tsan-probe-stack, r=alexcrichton
Disable stack probe when thread sanitizer is enabled

When thread sanitizer instrumentation is enabled during compilation of
stack probe function, the function will be miscompiled and trigger
segmentation fault at runtime. Disable stack probes when tsan is
enabled.
2019-10-08 15:45:26 +02:00
Mazdak Farrokhzad 7153c9262a Rollup merge of #64918 - GuillaumeGomez:long-err-explanation-E0551, r=oli-obk
Add long error explanation for E0551

Part of #61137
2019-10-08 15:45:25 +02:00
Mazdak Farrokhzad 6f211f1539 Rollup merge of #64404 - GuillaumeGomez:err-E0495, r=Dylan-DPC
Add long error explanation for E0495

Part of #61137.
2019-10-08 15:45:23 +02:00
bors 3fa9554d77 Auto merge of #65206 - mati865:clippyup, r=oli-obk
Update Clippy

I cannot test it locally but Clippy CI is green so it should work.

Fixes https://github.com/rust-lang/rust/issues/65096
2019-10-08 13:41:12 +00:00
Mateusz Mikuła 6d3e242a2b Update Clippy 2019-10-08 14:14:09 +02:00
Guillaume Gomez 6608e4af1b Update ui tests 2019-10-08 13:57:40 +02:00
Guillaume Gomez 61d92a0952 Add long error explanation for E0567 2019-10-08 13:57:39 +02:00
csmoe d1d256592b suggest to add move keyword for generator 2019-10-08 11:13:48 +00:00
Konrad Borowski 58089717b9 Add ?Sized bound to a supertrait listing in E0038 error documentation
This example failed to compile because of implicit `Sized` bound
for `A` parameter that wasn't required by `Trait`.
2019-10-08 12:19:00 +02:00
bors ec557aa818 Auto merge of #64949 - nnethercote:avoid-SmallVec-collect, r=zackmdavis
Avoid `SmallVec::collect`

We can get sizeable speed-ups by avoiding `SmallVec::collect` when the number of elements is small.
2019-10-08 08:08:21 +00:00
Nicholas Nethercote 75e0078a17 Optimize TokenStreamBuilder::push.
Currently, when two tokens must be glued together, this function duplicates
large chunks of the existing streams. This can cause quadratic behaviour.

This commit changes the function so that it overwrites the last token with a
glued token, which avoids the quadratic behaviour. This removes the need for
`TokenStreamBuilder::push_all_but_{first,last}_tree`.

The commit also restructures `push` somewhat, by removing
`TokenStream::{first_tree_and_joint,last_tree_if_joint}` in favour of more
pattern matching and some comments. This makes the code shorter, and in my
opinion, more readable.
2019-10-08 16:57:29 +11:00
Nicholas Nethercote 3832a634d3 Optimize TokenStream::from_streams.
Currently, this function creates a new empty stream, and then appends
the elements from each given stream onto that stream. This can cause
quadratic behaviour.

This commit changes the function so that it modifies the first stream
(which can be long) by extending it with the elements from the
subsequent streams (which are almost always short), which avoids the
quadratic behaviour.
2019-10-08 16:57:07 +11:00
Nicholas Nethercote 1b41f958c5 Remove InferCtxt::in_snapshot().
It's the same as `InferCtxt::commit_unconditionally()` except that it
is passed a snapshot and has a worse name.

The commit also changes `commit_unconditionally()` to receive a
snapshot, for consistency with `commit_if_ok()` and `probe()`.
2019-10-08 16:05:51 +11:00
Nicholas Nethercote 3f9aea199c Clarify a comment in RegionConstraintCollector::leak_check. 2019-10-08 16:04:41 +11:00
bors 1e1f25e31b Auto merge of #65196 - Centril:rollup-q06lcxm, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #64726 (rewrite documentation for unimplemented! to clarify use)
 - #65040 (syntax: more cleanups in item and function signature parsing)
 - #65046 (Make `Cell::new` method come first in documentation)
 - #65098 (Add long error explanation for E0561)
 - #65150 (Suggest dereferencing boolean reference when used in 'if' or 'while')
 - #65154 (Fix const generic arguments not displaying in types mismatch diagnostic)
 - #65181 (fix bug in folding for constants)
 - #65187 (use 'invalid argument' for vxWorks)

Failed merges:

 - #65179 (Add long error explanation for E0567)

r? @ghost
2019-10-08 04:35:03 +00:00
Mazdak Farrokhzad bc7df81642 Rollup merge of #65187 - Wind-River:master_before_merge, r=rkruppe
use 'invalid argument' for vxWorks

vxWorks is using "invalid argument" instead of "Invalid argument" in reporting invalid options

r? @rkruppe
2019-10-08 05:02:44 +02:00
Mazdak Farrokhzad f23c9f4565 Rollup merge of #65181 - nikomatsakis:lazy-norm-anon-const-push-1, r=varkor
fix bug in folding for constants

These was a bug in the folding for constants that caused it to overlook bound regions. This branch includes some other little things that I did while trying to track the bug down.

r? @oli-obk
2019-10-08 05:02:43 +02:00
Mazdak Farrokhzad ecdb5e98cb Rollup merge of #65154 - skinny121:const-arg-diagnostic, r=varkor
Fix const generic arguments not displaying in types mismatch diagnostic

Fixes #61395
2019-10-08 05:02:41 +02:00
Mazdak Farrokhzad 5422ed7834 Rollup merge of #65150 - XiangQingW:master, r=estebank
Suggest dereferencing boolean reference when used in 'if' or 'while'

Implements #64557
2019-10-08 05:02:39 +02:00
Mazdak Farrokhzad 73685ec56f Rollup merge of #65098 - GuillaumeGomez:long-err-explanation-E0561, r=Centril
Add long error explanation for E0561

Part of #61137
2019-10-08 05:02:38 +02:00
Mazdak Farrokhzad a9777b3061 Rollup merge of #65046 - sinkuu:cell_reorder, r=shepmaster
Make `Cell::new` method come first in documentation

Methods to create a thing usually comes first in `std` documentation, and `Cell` has been an exception. Also, `T: Copy` specialized methods should not be on top of the page. (This had led me to miss that most of its methods are not bounded by `Copy`...)
2019-10-08 05:02:36 +02:00
Mazdak Farrokhzad 4737095416 Rollup merge of #65040 - Centril:items-cleanup, r=estebank
syntax: more cleanups in item and function signature parsing

Follow up to https://github.com/rust-lang/rust/pull/64910.

Best read commit-by-commit.

r? @estebank
2019-10-08 05:02:35 +02:00
Mazdak Farrokhzad 2f0618d8c6 Rollup merge of #64726 - andrewbanchich:unimplemented, r=rkruppe
rewrite documentation for unimplemented! to clarify use

The current docs for `unimplemented!` seem to miss the point of this macro.

> This can be useful if you are prototyping and are just looking to have your code type-check, or if you're implementing a trait that requires multiple methods, and you're only planning on using one of them.

You could also return a `()` if you just want your code to type-check.

I think `unimplemented!` is useful for when you want your program to exit when it reaches an unimplemented area.

I rewrote the explanation and gave examples of both forms of this macro that I think clarify its use a little better.
2019-10-08 05:02:33 +02:00
bors d304f5c1ff Auto merge of #65186 - mati865:cargoup, r=alexcrichton
Update Cargo

To pull rust-lang/cargo#7482

List of merged PRs:
- Fix wrong directories in PATH on Windows (rust-lang/cargo#7482)
- Update SPDX list to 3.6 (rust-lang/cargo#7481)
- Mark Emscripten's .wasm files auxiliary (rust-lang/cargo#7476)
- Update `curl-sys` dependency requirement (rust-lang/cargo#7464)
- add dependencies for `pkg-config` (rust-lang/cargo#7443)
- Removing hash from output files when using MSVC (rust-lang/cargo#7400)
- Disable preserving mtimes on archives (rust-lang/cargo#7465)
- Removed redundant borrow (rust-lang/cargo#7462)
- Public dependency refactor and re-allow backjumping (rust-lang/cargo#7361)
- unify the quote in Cargo.toml (rust-lang/cargo#7461)
2019-10-08 01:05:08 +00:00
Mark Rousskov e068cec13e Warn if include macro fails to include entire file 2019-10-07 19:47:53 -04:00
Esteban Küber 5aa37a9c9b Use structured suggestion for removal of as_str() call 2019-10-07 16:18:02 -07:00
Josh Stone d305254099 Add rustc-dev to nightly default and complete profiles 2019-10-07 15:49:51 -07:00
bors c20654ebc3 Auto merge of #64358 - cuviper:rustc-rayon-1.2, r=nikomatsakis
Rebase rustc-rayon on rayon-1.2

See also https://github.com/rust-lang/rustc-rayon/pull/3
2019-10-07 21:24:29 +00:00
varkor c99074490b Add a regression test for #57271 2019-10-07 22:24:04 +01:00
varkor 85b7aa2cfb Add a regression test for #57399 2019-10-07 22:10:50 +01:00
varkor 4eba21e4c7 Add regression test for #64792 2019-10-07 22:06:14 +01:00
varkor 2328a7ea40 Move stray issue tests into src/test/ui/issues 2019-10-07 22:05:56 +01:00
varkor 5e65e2bec2 Add a regression test for issue 62187 2019-10-07 22:01:58 +01:00