119901 Commits

Author SHA1 Message Date
Dylan DPC
4b0b6e357b
Rollup merge of #71883 - Dante-Broggi:patch-1, r=Dylan-DPC
add a missing "at" in a comment
2020-05-05 01:49:46 +02:00
Dylan DPC
c1b2fd2121
Rollup merge of #71881 - IsaacWoods:master, r=petrochenkov
Correctly handle UEFI targets as Windows-like when emitting sections for LLVM bitcode

This handles UEFI handles when emitting inline assembly for sections containing LLVM bitcode. See details in #71880. I have locally confirmed that this change fixes compilation of projects using the `x86_64-unknown-uefi` target compiling with `cargo-xbuild`, but I am not very familiar with LLVM bitcode so this may not be the correct approach.

r? @alexcrichton as they wrote the initial LLVM bitcode emitting code?
2020-05-05 01:49:44 +02:00
Dylan DPC
faccb0f07a
Rollup merge of #71878 - main--:patch-2, r=Amanieu
Add remove_current_as_list to LinkedList's CursorMut

The `remove_current` method only returns the inner `T` and deallocates the list node. This is unnecessary for move operations, where the element is going to be linked back into this (or even a different) `LinkedList`. The `remove_current_as_list` method avoids this by returning the unlinked list node as a new single-element `LinkedList` structure.

(per https://github.com/rust-lang/rust/issues/58533#issuecomment-623010157)
2020-05-05 01:49:43 +02:00
Dylan DPC
db7b38181c
Rollup merge of #71845 - steveklabnik:add-const-examples, r=dtolnay
Add const examples

I only added them to `std::f32` to get feedback on this approach before adding the other constants.

When looking at https://github.com/rust-lang/rust/pull/68952, I found the docs a little confusing. Unless you're intimately aware of what's going on here, I don't think it's super clear what is deprecated and what you're supposed to do instead. I think short examples really clarify what's meant here, so that's what I did.
2020-05-05 01:49:41 +02:00
Dylan DPC
04776b15a7
Rollup merge of #71711 - Mark-Simulacrum:deignore-tests, r=nikomatsakis
Updates to some ignored tests

This removes or fixes some ignored test cases.

cc #13745
2020-05-05 01:49:37 +02:00
Dylan DPC
4bde46e0e3
Rollup merge of #71587 - matthewjasper:promoted-move-errors, r=nikomatsakis
Report cannot move errors in promoted MIR

Closes #70934
2020-05-05 01:49:32 +02:00
mibac138
b83853d617 Add command aliases from Cargo to x.py commands 2020-05-05 00:37:50 +02:00
Andy Russell
36f51f97c7
fix typo in function name 2020-05-04 18:27:23 -04:00
mibac138
73867365a8 Suggest to add missing feature when using gated const features 2020-05-04 23:47:00 +02:00
Alex Crichton
0b35692f5e Improve docs for embed-bitcode and linker-plugin-lto
Follow-up from #71716 I wasn't able to add in time.
2020-05-04 14:46:58 -07:00
Dylan MacKenzie
095d1fdf16 Import dataflow impls via the impls submodule 2020-05-04 12:50:36 -07:00
Dylan MacKenzie
9c93b883d1 Export dataflow impls by name 2020-05-04 12:50:05 -07:00
Carol (Nichols || Goulding)
d02128f92f
Update btree_map::VacantEntry::insert docs to actually call insert
It looks like they were copied from the `or_insert` docs. This change
makes the example more like the hash_map::VacantEntry::insert docs.
2020-05-04 15:49:15 -04:00
Bastian Kauschke
a9b6af98d1 double neg 2020-05-04 21:04:11 +02:00
Josh Stone
1a439d2865 Simplify the error Registry methods a little 2020-05-04 11:52:15 -07:00
Bastian Kauschke
ab7360d98f refactor suggest_traits_to_import 2020-05-04 20:48:17 +02:00
Ralf Jung
3f50292edc edit Mutex comment 2020-05-04 20:47:46 +02:00
Esteban Küber
b17b20cafc Add docstring to deny_equality_constraints 2020-05-04 11:09:10 -07:00
Esteban Küber
b13f234a1b fix rebase 2020-05-04 11:02:20 -07:00
Ralf Jung
40a6b8c339 explain our rwlock implementation (and fix a potential data race) 2020-05-04 19:37:55 +02:00
bors
2454a68cfb Auto merge of #71879 - Dylan-DPC:rollup-n05awny, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71038 (forbid `dyn Trait` in patterns)
 - #71697 (Added MIR constant propagation of Scalars into function call arguments)
 - #71773 (doc: misc rustdoc things)
 - #71810 (Do not try to find binop method on RHS `TyErr`)
 - #71877 (Use f64 in f64 examples)

Failed merges:

r? @ghost
2020-05-04 17:34:51 +00:00
Ralf Jung
61fdd3e2be expand comment on default mutex behavior 2020-05-04 19:17:58 +02:00
Esteban Küber
5d64e91458 review comment: use body_id 2020-05-04 09:53:15 -07:00
Esteban Küber
c93c660b0d review comments and rebase fix 2020-05-04 09:53:15 -07:00
Esteban Küber
d8d02f8f18 On incorrect equality constraint likely to be assoc type, suggest appropriate syntax
When encountering `where <A as Foo>::Bar = B`, it is possible that `Bar`
is an associated type. If so, suggest `where A: Foo<Bar = B>`.

CC #20041.
2020-05-04 09:53:15 -07:00
Esteban Küber
3453db7bfc review comments: use or-pattern 2020-05-04 09:53:15 -07:00
Esteban Küber
1473a66318 Suggest restricting type param when it doesn't satisfy projection
When encountering a projection that isn't satisfied by a type parameter,
suggest constraining the type parameter.
2020-05-04 09:53:15 -07:00
Esteban Küber
75f066dc68 Handle binop on unbound type param
When encountering a binary operation involving a type parameter that has
no bindings, suggest adding the appropriate bound.
2020-05-04 09:52:40 -07:00
Dante Broggi
4a8fa18977
add a missing word 2020-05-04 11:42:57 -04:00
Alex Crichton
3318187ebc Update the cc crate
Pulls in updated MSVC detection logic landed in alexcrichton/cc-rs#488
2020-05-04 08:35:45 -07:00
Isaac Woods
6e77729ed5
Correctly handle UEFI targets as Windows-like when emitting sections for LLVM bitcode 2020-05-04 16:27:46 +01:00
Dylan DPC
fc2837b05a
Rollup merge of #71877 - steveklabnik:small-example-fix, r=Mark-Simulacrum
Use f64 in f64 examples

I believe that this is a copy/paste error; this example was using f32,
but it's the docs for f64.
2020-05-04 16:15:41 +02:00
Dylan DPC
3f38b99a63
Rollup merge of #71810 - estebank:issue-71798, r=davidtwco
Do not try to find binop method on RHS `TyErr`

Fix #71798.
2020-05-04 16:15:37 +02:00
Dylan DPC
35e7745105
Rollup merge of #71773 - tshepang:links, r=davidtwco
doc: misc rustdoc things
2020-05-04 16:15:32 +02:00
Dylan DPC
d47ec16582
Rollup merge of #71697 - felix91gr:new_prop_into_fn_call, r=wesleywiser
Added MIR constant propagation of Scalars into function call arguments

Now for the function call arguments!

Caveats:
1. It's only being enabled at `mir-opt-2` or higher, because currently codegen gives performance regressions with this optimization.
2. Only propagates Scalars. Tuples and references (references are `Indirect`, right??) are not being propagated into as of this PR.
3. Maybe more tests would be nice?
4. I need (shamefully) to ask @wesleywiser to write in his words (or explain to me, and then I can write it down) why we want to ignore propagation into `ScalarPairs` and `Indirect` arguments.

r? @wesleywiser
2020-05-04 16:15:28 +02:00
Dylan DPC
679431f741
Rollup merge of #71038 - lcnr:dyn_trait_structural_match, r=pnkfelix
forbid `dyn Trait` in patterns

Do not allow `&dyn Trait` as a generic const parameters.
This also changes dyn trait in pattern from ICE to error.

closes #63322
closes #70972

r? @eddyb
2020-05-04 16:15:24 +02:00
bors
649b6323cd Auto merge of #71754 - alexcrichton:no-bitcode-in-cache, r=nnethercote
Don't copy bytecode files into the incr. comp. cache.

It's no longer necessary now that bitcode is embedded into object files.

This change meant that `WorkProductFileKind::Bytecode` is no longer
necessary, which means that type is no longer necessary, which allowed
several places in the code to become simpler.

This commit was written by @nnethercote in https://github.com/rust-lang/rust/pull/70458 but that didn't land. In the meantime though we managed to land it in https://github.com/rust-lang/rust/pull/71528 and that doesn't seem to be causing too many fires, so I'm re-sending this patch!
2020-05-04 14:14:55 +00:00
main()
c5cdf7fe92
whoops 2020-05-04 16:10:59 +02:00
main()
1593e2b7df
Add remove_current_as_list to LinkedList's CursorMut
The `remove_current` method only returns the inner `T` and deallocates the list node. This is unnecessary for move operations, where the element is going to be linked back into this (or even a different) `LinkedList`. The `remove_current_as_list` method avoids this by returning the unlinked list node as a new single-element `LinkedList` structure .
2020-05-04 15:53:02 +02:00
Steve Klabnik
a028292de5 Use f64 in f64 examples
I believe that this is a copy/paste error; this example was using f32,
but it's the docs for f64.
2020-05-04 08:28:53 -05:00
Steve Klabnik
55e37f9f02 Add examples to int macros 2020-05-04 08:26:39 -05:00
Steve Klabnik
8bef0a3683 f64 examples 2020-05-04 08:17:10 -05:00
Steve Klabnik
d38d429be7 correct -> intended 2020-05-04 08:17:10 -05:00
Steve Klabnik
0768fa461c add some whitespace 2020-05-04 08:17:10 -05:00
Steve Klabnik
a992f95e34 Add examples for std::f32 constants.
And also point people to use the associated constants of f32 instead.
2020-05-04 08:17:02 -05:00
Sam Elliott
cda994633e Add Option to Force Unwind Tables
When panic != unwind, `nounwind` is added to all functions for a target.
This can cause issues when a panic happens with RUST_BACKTRACE=1, as
there needs to be a way to reconstruct the backtrace. There are three
possible sources of this information: forcing frame pointers (for which
an option exists already), debug info (for which an option exists), or
unwind tables.

Especially for embedded devices, forcing frame pointers can have code
size overheads (RISC-V sees ~10% overheads, ARM sees ~2-3% overheads).
In code, it can be the case that debug info is not kept, so it is useful
to provide this third option, unwind tables, that users can use to
reconstruct the call stack. Reconstructing this stack is harder than
with frame pointers, but it is still possible.

This commit adds a compiler option which allows a user to force the
addition of unwind tables. Unwind tables cannot be disabled on targets
that require them for correctness, or when using `-C panic=unwind`.
2020-05-04 12:08:35 +01:00
bors
6318d24ad8 Auto merge of #71751 - oli-obk:const_ice, r=RalfJung
Move recursion check for zsts back to read site instead of access check site

Reverts https://github.com/rust-lang/rust/pull/71140#discussion_r413709446

Fix #71612
Fix #71709

r? @RalfJung
2020-05-04 09:39:53 +00:00
bors
d6823ba166 Auto merge of #71108 - estebank:suggest-proj-type-mismatch-constraint, r=oli-obk
On type mismatch involving associated type, suggest constraint

When an associated type is found when a specific type was expected, if
possible provide a structured suggestion constraining the associated
type in a bound.

```
error[E0271]: type mismatch resolving `<T as Foo>::Y == i32`
  --> $DIR/associated-types-multiple-types-one-trait.rs:13:5
   |
LL |     want_y(t);
   |     ^^^^^^ expected `i32`, found associated type
...
LL | fn want_y<T:Foo<Y=i32>>(t: &T) { }
   |                 ----- required by this bound in `want_y`
   |
   = note:         expected type `i32`
           found associated type `<T as Foo>::Y`
help: consider constraining the associated type `<T as Foo>::Y` to `i32`
   |
LL | fn have_x_want_y<T:Foo<X=u32, Y = i32>>(t: &T)
   |                             ^^^^^^^^^
```

```
error[E0308]: mismatched types
  --> $DIR/trait-with-missing-associated-type-restriction.rs:12:9
   |
LL |     qux(x.func())
   |         ^^^^^^^^ expected `usize`, found associated type
   |
   = note:         expected type `usize`
           found associated type `<impl Trait as Trait>::A`
help: consider constraining the associated type `<impl Trait as Trait>::A` to `usize`
   |
LL | fn foo(x: impl Trait<A = usize>) {
   |                     ^^^^^^^^^^
```

Fix #71035. Related to #70908.
2020-05-04 06:32:49 +00:00
bors
ff4df04799 Auto merge of #71866 - Dylan-DPC:rollup-g9xqc8k, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #71645 (Direct contributors to try stage 0 rustdoc first)
 - #71801 (Correctly check comparison operator in MIR typeck)
 - #71844 (List Clippy as a subtree, instead of a submodule)
 - #71864 (Update link in contributing.md)

Failed merges:

r? @ghost
2020-05-04 01:48:07 +00:00
Esteban Küber
b368229d9b review comment: use early return 2020-05-03 18:20:53 -07:00