Commit graph

28335 commits

Author SHA1 Message Date
bors
8bf17584e0 Auto merge of #68269 - csmoe:temp, r=estebank
Suggest to shorten temporary borrow from raw pointer

Closes https://github.com/rust-lang/rust/issues/65436
r? @estebank
cc @tmandry
2020-01-25 04:42:56 +00:00
Yuki Okushi
b9c86a363a
Rollup merge of #68511 - tmiasko:ignore-license, r=alexcrichton
Remove unused ignore-license directives

The tidy check was removed in rust-lang/rust#53617
2020-01-25 07:45:16 +09:00
Yuki Okushi
cecffb6308
Rollup merge of #68504 - tmiasko:check-pass, r=alexcrichton
Use check-pass mode for lint tests and nll tests

Helps with issue #62277.
2020-01-25 07:45:13 +09:00
Yuki Okushi
cbaecee87c
Rollup merge of #68111 - varkor:const-generics-type_name, r=oli-obk
Print constants in `type_name` for const generics

Fixes https://github.com/rust-lang/rust/issues/65372.

r? @oli-obk as there may have been a deliberate decision not to in 5b9848912a (diff-4ed1a72c0bfdf17be769ed520932cd02R80).
2020-01-25 07:45:10 +09:00
bors
c2d141df59 Auto merge of #68494 - matthewjasper:internal-static-ptrs, r=nikomatsakis
Make pointers to statics internal

Closes #67611

r? @nikomatsakis
2020-01-24 17:18:36 +00:00
varkor
50dd8eaeb9 Print constants in type_name for const generics 2020-01-24 16:23:32 +00:00
bors
73f76b74ef Auto merge of #68414 - michaelwoerister:share-drop-glue, r=alexcrichton
Also share drop-glue when compiling with -Zshare-generics (i.e. at opt-level=0)

This PR adds drop-glue to the set of monomorphizations that can be shared across crates via `-Zshare-generics`.

This version of the PR might have detrimental effects on performance as it makes lots of stuff dependent on a single query results (`upstream_monomorphizations_for(def_id_of_drop_in_place)`). That should be fixable but let's do a perf run first.

Potentially fixes issue https://github.com/rust-lang/rust/issues/64140. (cc @alexcrichton)
The changes here are related to @matthewjasper's https://github.com/rust-lang/rust/pull/67332 but should be mostly orthogonal.

r? @ghost
2020-01-24 14:00:56 +00:00
Tyler Mandry
1662888126
Rollup merge of #68479 - Tyg13:unused_parens_return, r=Centril
Implement `unused_parens` for block return values

Fixes #68386

r? @Centril
2020-01-24 00:30:59 -08:00
Tyler Mandry
e7752aefdc
Rollup merge of #68469 - ollie27:skip_count, r=sfackler
Avoid overflow in `std::iter::Skip::count`

The call to `count` on the inner iterator can overflow even if `Skip` itself would return less that `usize::max_value()` items.

Fixes #68139
2020-01-24 00:30:56 -08:00
Tyler Mandry
143059deaf
Rollup merge of #68438 - Aaron1011:fix/tait-non-defining, r=estebank
Account for non-types in substs for opaque type error messages

Fixes #68368

Previously, I assumed that the substs contained only types, which caused
the computed index number to be wrong.
2020-01-24 00:30:55 -08:00
Tyler Mandry
eb769ed6b0
Rollup merge of #68424 - estebank:suggest-borrow-for-non-copy-vec, r=davidtwco
Suggest borrowing `Vec<NonCopy>` in for loop

Partially address #64167.
2020-01-24 00:30:53 -08:00
Tomasz Miąsko
2fd6c4a18a Remove unused ignore-license directives
The tidy check was removed in rust-lang/rust#53617
2020-01-24 00:00:00 +00:00
Matthew Jasper
f30a8186f7 Make pointers to statics internal 2020-01-23 21:38:15 +00:00
Esteban Küber
6eaf59dfc8 use diagnostic_item and modify wording 2020-01-23 11:51:56 -08:00
Michael Woerister
2ceb92bc53 Make drop-glue take advantage of -Zshare-generics. 2020-01-23 13:15:15 +01:00
Tyler Lanphear
6f7e89ffe3 unused-parens: implement for block return values 2020-01-23 00:42:35 -05:00
bors
462fc37fa8 Auto merge of #68298 - Mark-Simulacrum:binary-depdep-fix, r=petrochenkov
Avoid declaring a fake dependency edge

When we're producing an rlib, we do not need anything more than an rmeta file
for each of our dependencies (this is indeed utilized by Cargo for pipelining).
Previously, we were still storing the paths of possible rlib/dylib crates, which
meant that they could still plausibly be accessed. With -Zbinary-dep-depinfo,
that meant that Cargo thought that rustc was using both the rlib and an (earlier
emitted) rmeta, and so needed a recompile, as the rlib may have finished writing
*after* compilation started (for more detail, see issue 68149).

This commit changes metadata loading to not store the filepaths of dylib/rlib if
we're going to end up creating an rlib only.

Fixes #68149.
2020-01-23 03:48:07 +00:00
Tyler Mandry
1077adae12
Rollup merge of #68425 - phi-gamma:try-method, r=varkor
Fix try-op diagnostic in E0277 for methods

For methods the try-op diagnostic displays the empty string where
it has more descriptive strings like “a function” otherwise:

    error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
                                                      ^^
       | |             ^^ cannot use the `?` operator in  that returns `()`
                                                        ^^

I’m seeing this on nightly (rustc 1.42.0-nightly (b5a3341f1
2020-01-20)) and [on the playpen](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0e7ce7792c2aceb8056941710d539124).

The changeset add strings for impl methods and trait provided
methods and test cases for the option type.
2020-01-22 16:02:17 -08:00
Tyler Mandry
97ac259148
Rollup merge of #68410 - tmiasko:msan-lto, r=varkor
Export weak symbols used by MemorySanitizer

Export weak symbols defined by MemorySanitizer instrumentation, which are used
to implement `-Zsanitizer-memory-track-origins` and `-Zsanitizer-recover=memory`.
Previously, when using fat LTO, they would internalized and eliminated.

Fixes #68367.
2020-01-22 16:02:16 -08:00
Tyler Mandry
bd090c9e8a
Rollup merge of #68388 - varkor:toogeneric-wf, r=eddyb
Make `TooGeneric` error in WF checking a proper error

`TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.

Fixes https://github.com/rust-lang/rust/issues/66962.

r? @eddyb
2020-01-22 16:02:13 -08:00
Tomasz Miąsko
d915c016c9 Use check-pass mode for lint tests 2020-01-23 00:00:00 +00:00
Tomasz Miąsko
5c73d21eaa Use check-pass mode for nll tests 2020-01-23 00:00:00 +00:00
Oliver Middleton
9d3e84432d Avoid overflow in std::iter::Skip::count
The call to `count` on the inner iterator can overflow even if `Skip` itself would return less that `usize::max_value()` items.
2020-01-22 20:28:28 +00:00
bors
d1e594f402 Auto merge of #68192 - GuillaumeGomez:remove-inlined-types, r=kinnison
Remove usage of global variable "inlined_types"

r? @pietroalbini
2020-01-22 18:04:56 +00:00
bors
ae66171b41 Auto merge of #68069 - JohnTitor:fix-closure-ice, r=matthewjasper
Attempt to fix ICE #68025

Fixes #68025
2020-01-22 13:10:49 +00:00
bors
f5abfb1569 Auto merge of #68194 - jonas-schievink:fix-thumb-ci, r=alexcrichton
Fix CI for embedded ARM targets

Closes https://github.com/rust-lang/rust/issues/67018

It would be better to move the `thumb-none-cortex-m` test into the `cargotest` suite, but it doesn't seem to support cross-compilation.
2020-01-22 09:49:03 +00:00
Aaron Hill
4ee4287b1d
Account for non-types in substs for opaque type error messages
Fixes #68368

Previously, I assumed that the substs contained only types, which caused
the computed index number to be wrong.
2020-01-21 18:49:01 -05:00
Esteban Küber
c775927d7f Suggest borrowing Vec<NonCopy> in for loop
Partially address #64167.
2020-01-21 11:11:00 -08:00
Mazdak Farrokhzad
58504823f5
Rollup merge of #68399 - Centril:check-match-unify, r=oli-obk
check_match: misc unifications and ICE fixes

These are some unifications made as a by-product of working on `hir::ExprKind::Let`.

Fixes https://github.com/rust-lang/rust/issues/68396.
Fixes https://github.com/rust-lang/rust/issues/68394.
Fixes https://github.com/rust-lang/rust/issues/68393.

r? @oli-obk @matthewjasper
2020-01-21 19:42:25 +01:00
Mazdak Farrokhzad
3484e2fab4
Rollup merge of #68140 - ecstatic-morse:const-trait-bound-opt-out, r=oli-obk
Implement `?const` opt-out for trait bounds

For now, such bounds are treated exactly the same as unprefixed ones in all contexts. [RFC 2632](https://github.com/rust-lang/rfcs/pull/2632) does not specify whether such bounds are forbidden outside of `const` contexts, so they are allowed at the moment.

Prior to this PR, the constness of a trait bound/impl was stored in `TraitRef`. Now, the constness of an `impl` is stored in `ast::ItemKind::Impl` and the constness of a bound in `ast::TraitBoundModifer`. Additionally, constness of trait bounds is now stored in an additional field of `ty::Predicate::Trait`, and the combination of the constness of the item along with any `TraitBoundModifier` determines the constness of the bound in accordance with the RFC. Encoding the constness of impls at the `ty` level is left for a later PR.

After a discussion in \#wg-grammar on Discord, it was decided that the grammar should not encode the mutual exclusivity of trait bound modifiers. The grammar for trait bound modifiers remains `[?const] [?]`. To encode this, I add a dummy variant to `ast::TraitBoundModifier` that is used when the syntax `?const ?` appears. This variant causes an error in AST validation and disappears during HIR lowering.

cc #67794

r? @oli-obk
2020-01-21 19:42:20 +01:00
Jonas Schievink
d022e01caa Do not use Cortex-M0 since Qemu is too old 2020-01-21 19:01:56 +01:00
Jonas Schievink
6175f447b5 Check in lockfile 2020-01-21 19:01:56 +01:00
Jonas Schievink
36e230fe22 Update dependencies
This fixes a linkage issue that was fixed a while ago, and adds thumbv8
support.
2020-01-21 19:01:56 +01:00
Jonas Schievink
ce36c98e5b Use the right runners for all thumb targets 2020-01-21 19:01:56 +01:00
Jonas Schievink
ce7172da51 Fix thumb target CI 2020-01-21 19:01:56 +01:00
Philipp Gesang
02e66baac6
Test try diagnostics for impl and trait methods
Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
2020-01-21 18:56:56 +01:00
bors
ce361fb24f Auto merge of #68267 - estebank:lt-sugg, r=petrochenkov
Tweak lifetime definition errors

Taking inspiration from the narrative in @fasterthanlime's https://fasterthanli.me/blog/2019/declarative-memory-management/, add suggestions to some lifetime definition errors.
2020-01-21 06:28:33 +00:00
varkor
dd0507c054 Make TooGeneric error in WF checking a proper error
`TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.
2020-01-21 01:03:15 +00:00
Tomasz Miąsko
d8c661a886 Mark __msan_keep_going as an exported symbol for LTO 2020-01-21 00:00:00 +00:00
Mazdak Farrokhzad
58eb03d20f check_match: simplify check_arm 2020-01-20 23:39:24 +01:00
Yuki Okushi
f6406f7f68
Rollup merge of #68397 - ollie27:rustdoc_async_unsafe, r=Centril
rustdoc: Correct order of `async` and `unsafe` in `async unsafe fn`s

The order was swapped in #61319 but rustdoc was never updated to match.

r? @GuillaumeGomez
2020-01-21 07:32:50 +09:00
Yuki Okushi
8d2bac8dff
Rollup merge of #68302 - anp:caller-fn-ptr, r=eddyb,oli-obk
Fix #[track_caller] and function pointers

Starting with failing tests, fix the miscompilation and ICE caused by `ReifyShim` bug.

Fixes #68178.
2020-01-21 07:32:45 +09:00
Yuki Okushi
bff216c56f
Rollup merge of #68297 - Aaron1011:fix/new-const-prop-bounds, r=oli-obk
Filter and test predicates using `normalize_and_test_predicates` for const-prop

Fixes #68264

Previously, I attempted to use
`substitute_normalize_and_test_predicates` to detect unsatisfiable
bounds. Unfortunately, since const-prop runs in a generic environment
(we don't have any of the function's generic parameters substituted),
this could lead to cycle errors when attempting to normalize predicates.

This check is replaced with a more precise check. We now only call
`normalize_and_test_predicates` on predicates that have the possibility
of being proved unsatisfiable - that is, predicates that don't depend
on anything local to the function (e.g. generic parameters). This
ensures that we don't hit cycle errors when we normalize said
predicates, while still ensuring that we detect unsatisfiable
predicates.

I haven't been able to come up with a minimization of the Diesel issue - however, I've verified that it compiles successfully.
2020-01-21 07:32:44 +09:00
Yuki Okushi
eff6381c32
Rollup merge of #68290 - petrochenkov:passcheck, r=oli-obk
Fix some tests failing in `--pass check` mode

Warnings reported at codegen or linking time either have to be converted to errors (preferable), or the tests for them need to be marked with `// ignore-pass` (as a last resort).

ecd5852194 turned them from errors to warnings, but that shouldn't be necessary because it's still clear from the `.stderr` output that the errors are lints and not hard-coded.
2020-01-21 07:32:42 +09:00
Yuki Okushi
e1bd9b3396
Rollup merge of #67795 - Mark-Simulacrum:fmt-argument, r=dtolnay
Cleanup formatting code

This removes a few leftover positional enum variants that were no longer used.

All details that are changed are unstable (and `#[doc(hidden)]`), so this should
not impact downstream code.
2020-01-21 07:32:40 +09:00
Nikita Popov
2c0845c6cc Mark __msan_track_origins as an exported symbol for LTO 2020-01-20 23:13:38 +01:00
Mark Rousskov
be663bf850 Correct rmeta/rlib test 2020-01-20 16:00:01 -05:00
Guillaume Gomez
871e82b7d0 Add aliases attribute check 2020-01-20 20:42:52 +01:00
Mazdak Farrokhzad
78f0c7fd64 check_match: unify some lowering code and fix some ICEs 2020-01-20 19:46:27 +01:00
Oliver Middleton
3e0bfe1238 rustdoc: Correct order of async and unsafe in async unsafe fns 2020-01-20 18:14:51 +00:00