Commit Graph

119629 Commits

Author SHA1 Message Date
Markus Westerlind fba241fc66 refactor: simplify 2020-05-05 11:25:12 +02:00
Markus Westerlind 729d16f010 Prevent modifications without an undo log 2020-05-05 11:25:12 +02:00
Markus Westerlind 6e06535468 Fix import 2020-05-05 11:24:58 +02:00
Markus Westerlind 204c9154e2 refactor: Extract the undo log to its own modules 2020-05-05 11:24:36 +02:00
Markus Westerlind bc7f7b2d4d refactor: Rename Logs to InferCtxtUndoLogs 2020-05-05 11:24:36 +02:00
Markus Westerlind e6d7f1584d simplify 2020-05-05 11:24:36 +02:00
Markus Westerlind f45d852dcc perf: Merge region_obligations snapshotting into the undo log 2020-05-05 11:24:36 +02:00
Markus Westerlind 04f5d54d13 perf: Limit leak check snapshotting to probe_maybe_skip_leak_check 2020-05-05 11:24:36 +02:00
Markus Westerlind eb7ed0c917 perf: Lazily recive the Rollback argument in rollback_to 2020-05-05 11:24:36 +02:00
Markus Westerlind a457566154 perf: Separate CombinedSnapshot into a FullSnapshot for probing 2020-05-05 11:24:23 +02:00
Markus Westerlind 0c5d833812 Move projection_cache into the combined undo log 2020-05-05 11:24:23 +02:00
Markus Westerlind c50fc6e113 Allow SnapshotMap to have a separate undo_log 2020-05-05 11:24:22 +02:00
Markus Westerlind caacdd2024 Move region_constraint to the unified undo log 2020-05-05 11:23:54 +02:00
Markus Westerlind 1506b1fc6a perf: Reduce snapshot/rollback overhead
By merging the undo_log of all structures part of the snapshot the cost
of creating a snapshot becomes much cheaper. Since snapshots with no or
few changes are so frequent this ends up mattering more than the slight
overhead of dispatching on the variants that map to each field.
2020-05-05 10:03:13 +02:00
John Kåre Alsaker 61621e2667 Allow hir().find to return None 2020-05-05 10:03:13 +02:00
bors 04689e22e9 Auto merge of #71907 - Dylan-DPC:rollup-z8iaqlv, r=Dylan-DPC
Rollup of 10 pull requests

Successful merges:

 - #71587 (Report cannot move errors in promoted MIR)
 - #71711 (Updates to some ignored tests)
 - #71845 (Add const examples)
 - #71878 (Add remove_current_as_list to LinkedList's CursorMut)
 - #71881 (Correctly handle UEFI targets as Windows-like when emitting sections for LLVM bitcode)
 - #71883 (add a missing "at" in a comment)
 - #71891 (¬∃x. ¬y => ∀x. y)
 - #71892 (Update btree_map::VacantEntry::insert docs to actually call insert)
 - #71902 (Suggest to add missing feature when using gated const features)
 - #71904 (fix typo in function name)

Failed merges:

r? @ghost
2020-05-05 02:51:41 +00:00
Dylan DPC 8b781b0ffd Rollup merge of #71904 - euclio:function-typo, r=jonas-schievink
fix typo in function name

Drive-by fix.
2020-05-05 01:49:52 +02:00
Dylan DPC ad74ce9d04 Rollup merge of #71902 - mibac138:const-feature-diag, r=varkor
Suggest to add missing feature when using gated const features

Fixes #71797
2020-05-05 01:49:51 +02:00
Dylan DPC ac84daf930 Rollup merge of #71892 - integer32llc:btreemap-entry-vacant-docs, r=jonas-schievink
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-05 01:49:49 +02:00
Dylan DPC a93cc0664f Rollup merge of #71891 - lcnr:not-iter-any, r=Dylan-DPC
¬∃x. ¬y => ∀x. y
2020-05-05 01:49:48 +02:00
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
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
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
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
Dante Broggi 4a8fa18977 add a missing word 2020-05-04 11:42:57 -04: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
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