klensy
08b1e8004b
fix review
2021-02-25 04:21:12 +03:00
bors
1fdadbf13a
Auto merge of #82159 - BoxyUwU:uwu, r=varkor
...
Use correct param_env in conservative_is_privately_uninhabited
cc `@lcnr`
r? `@varkor` since this is your FIXME that was removed ^^
2021-02-24 21:54:52 +00:00
bors
6b56603e35
Auto merge of #80475 - simonvandel:fix-77355, r=oli-obk
...
New mir-opt pass to simplify gotos with const values (reopening #77486 )
Reopening PR #77486
Fixes #77355
This pass optimizes the following sequence
```rust
bb2: {
_2 = const true;
goto -> bb3;
}
bb3: {
switchInt(_2) -> [false: bb4, otherwise: bb5];
}
```
into
```rust
bb2: {
_2 = const true;
goto -> bb5;
}
```
2021-02-24 07:23:54 +00:00
Kevin Per
a3db47ab6c
Add suggestion for iterators in iterators
2021-02-24 07:07:53 +00:00
Tomasz Miąsko
55626eda08
Use log level to control partitioning debug output
2021-02-24 00:00:00 +00:00
Tomasz Miąsko
ef731b31db
Use small hash set in mir_inliner_callees
...
Use small hash set in `mir_inliner_callees` to avoid temporary
allocation when possible and quadratic behaviour for large number of
callees.
2021-02-24 00:00:00 +00:00
Tomasz Miąsko
6d5c0c1bcb
Consider inexpensive inlining criteria first
...
Refactor inlining decisions so that inexpensive criteria are considered first:
1. Based on code generation attributes.
2. Based on MIR availability (examines call graph).
3. Based on MIR body.
2021-02-24 00:00:00 +00:00
klensy
c75c4a579b
replaced some map_or with map_or_else
2021-02-24 02:43:35 +03:00
Ellen
42cbfd6346
yeet
2021-02-23 23:35:59 +00:00
Dylan DPC
aa1405fff7
Rollup merge of #82362 - osa1:issue81918, r=oli-obk
...
Fix mir-cfg dumps
Fixes #81918
Fixes #82326 (duplicate)
Fixes #82325
---
r? ``@oli-obk``
2021-02-23 16:10:29 +01:00
Dylan DPC
18d1284433
Rollup merge of #81629 - 1000teslas:issue-81365-fix, r=Aaron1011
...
Point out implicit deref coercions in borrow
Fixes #81365
`@Aaron1011` I'm not sure why my code shows the note even in an implicit `Deref` call. See the output for `issue-81365-8.rs`.
2021-02-23 16:10:20 +01:00
Aaron Hill
46db4bab0b
Skip emitting closure diagnostic when closure_kind_origins has no entry
...
Fixes #82438
This map is not guarnateed to have an entry for a closure.
2021-02-23 09:46:20 -05:00
Dylan DPC
cc07061190
Rollup merge of #82091 - henryboisdequin:use-place-ref-more, r=RalfJung
...
use PlaceRef abstractions more consistently
Addresses this [comment](https://github.com/rust-lang/rust/pull/80865/files#r558978715 )
Associated issue: #80647
r? ```@RalfJung```
2021-02-23 02:51:50 +01:00
Simon Vandel Sillesen
a6dccfeb23
New mir-opt pass to simplify gotos with const values
...
Fixes #77355
2021-02-22 21:03:57 +01:00
Ömer Sinan Ağacan
2145a8770c
Fix mir-cfg dumps
...
Fixes #81918
Fixes #82326 (duplicate)
Fixes #82325
2021-02-22 17:36:30 +03:00
bors
15598a83db
Auto merge of #77551 - simonvandel:extend-simplify-branch-same, r=oli-obk
...
MIR-OPT: Pass to deduplicate blocks
This pass finds basic blocks that are completely equal,
and replaces all uses with just one of them.
```bash
$ RUSTC_LOG=rustc_mir::transform::deduplicate_blocks ./x.py build --stage 2 | grep "SUCCESS: Replacing: " > log
...
$ cat log | wc -l
23875
```
2021-02-22 12:14:23 +00:00
1000teslas
1847a6c0c1
Extract deref coercion explanation into method
2021-02-22 19:08:44 +11:00
Simon Vandel Sillesen
2d1e0adfe9
New pass to deduplicate blocks
2021-02-21 21:51:54 +01:00
Simon Vandel Sillesen
1e865709a6
Make MatchBranchSimplification clean up after itself
2021-02-21 21:22:04 +01:00
Simon Vandel Sillesen
ccecc4f6bf
Drive-by formatting of comment
2021-02-21 21:22:04 +01:00
Matthias Krüger
da9a588d4f
remove redundant wrapping of return types of allow_internal_unstable() and rustc_allow_const_fn_unstable()
2021-02-21 18:11:27 +01:00
Matthias Krüger
a9b90c02a2
rustc_mir: remove redundant wrapping of return type in numeric_intrinsic()
2021-02-21 13:44:16 +01:00
Guillaume Gomez
2d39300e2f
Rollup merge of #82176 - RalfJung:mir-fn-ptr-pretty, r=oli-obk
...
fix MIR fn-ptr pretty-printing
An uninitialized function pointer would get printed as `{{uninit fn()}` (notice the unbalanced parentheses), and a dangling fn ptr would ICE. This fixes both of that.
However, I have no idea how to add tests for this.
Also, I don't understand this MIR pretty-printing code. Somehow the print function `pretty_print_const_scalar` actually *returns* a transformed form of the const (but there is no doc comment explaining what is being returned); some match arms do `p!` while others do `self =`, and there's a wild mixture of `p!` and `write!`... all very mysterious and confusing.^^
r? ``@oli-obk``
2021-02-20 20:37:00 +01:00
Ralf Jung
d496bfc161
all InterpError allocate now, so adjust alloc-error-check
2021-02-20 19:01:25 +01:00
Henry Boisdequin
a9c6188889
make super_projection
take a PlaceRef
2021-02-20 16:56:08 +05:30
bors
e7c23ab933
Auto merge of #82124 - tmiasko:op-ty-ref, r=oli-obk
...
Pass large interpreter types by reference, not value
r? `@ghost`
2021-02-20 10:20:42 +00:00
1000teslas
99f4573264
Add deref definition location
...
Update conflict_errors.rs
Add deref definition location
2021-02-19 18:43:57 +11:00
LeSeulArtichaut
ec20993c4d
Stabilize unsafe_op_in_unsafe_fn
lint
2021-02-18 17:12:15 +01:00
Eduard-Mihai Burtescu
6165d1cc72
Print -Ztime-passes (and misc stats/logs) on stderr, not stdout.
2021-02-18 14:13:38 +02:00
Yuki Okushi
ce6367f479
Rollup merge of #82240 - matthiaskrgr:qmark, r=Dylan-DPC
...
remove useless ?s (clippy::needless_question_marks)
Example code:
```rust
fn opts() -> Option<String> {
let s: Option<String> = Some(String::new());
Some(s?) // this can just be "s"
}
```
2021-02-18 15:57:33 +09:00
Yuki Okushi
53b5c6b58d
Rollup merge of #82212 - est31:graph_graph_graph, r=oli-obk
...
Remove redundant rustc_data_structures path component
2021-02-18 15:57:32 +09:00
Matthias Krüger
f7b834831f
remove useless ?s (clippy::needless_question_marks)
...
Example code:
```
fn opts() -> Option<String> {
let s: Option<String> = Some(String::new());
Some(s?) // this can just be "s"
}
```
2021-02-17 23:23:57 +01:00
bors
152f660924
Auto merge of #82235 - GuillaumeGomez:rollup-oflxc08, r=GuillaumeGomez
...
Rollup of 11 pull requests
Successful merges:
- #79981 (Add 'consider using' message to overflowing_literals)
- #82094 (To digit simplification)
- #82105 (Don't fail to remove files if they are missing)
- #82136 (Fix ICE: Use delay_span_bug for mismatched subst/hir arg)
- #82169 (Document that `assert!` format arguments are evaluated lazily)
- #82174 (Replace File::create and write_all with fs::write)
- #82196 (Add caveat to Path::display() about lossiness)
- #82198 (Use internal iteration in Iterator::is_sorted_by)
- #82204 (Update books)
- #82207 (rustdoc: treat edition 2021 as unstable)
- #82231 (Add long explanation for E0543)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-02-17 19:39:58 +00:00
Guillaume Gomez
13730e90bd
Rollup merge of #82136 - edward-shen:mismatched-subst-and-hir, r=lcnr
...
Fix ICE: Use delay_span_bug for mismatched subst/hir arg
Fixes #82126 .
2021-02-17 20:37:58 +01:00
est31
6460205031
Remove redundant rustc_data_structures path component
2021-02-17 09:30:08 +01:00
Tomasz Miąsko
e190f0d974
Reduce size of InterpErrorInfo to 8 bytes
2021-02-17 08:57:06 +01:00
Tomasz Miąsko
f2da425bff
./x.py fmt
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
d06a2a368d
Pass MPlaceTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
5888556efe
Pass ImmTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
fe0c46d07e
Pass PlaceTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
e915cf45dc
Pass OpTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
6c9d7fbeed
Add size assertions for interpreter data structures
2021-02-16 23:34:50 +01:00
bors
8fe989dd76
Auto merge of #81611 - cjgillot:meowner, r=estebank
...
Only store a LocalDefId in some HIR nodes
Some HIR nodes are guaranteed to be HIR owners: Item, TraitItem, ImplItem, ForeignItem and MacroDef.
As a consequence, we do not need to store the `HirId`'s `local_id`, and we can directly store a `LocalDefId`.
This allows to avoid a bit of the dance with `tcx.hir().local_def_id` and `tcx.hir().local_def_id_to_hir_id` mappings.
2021-02-16 22:14:32 +00:00
Ralf Jung
b08bc7836b
fix MIR fn-ptr pretty-printing
2021-02-16 09:59:38 +01:00
Ralf Jung
897cb61076
validation: fix invalid-fn-ptr error message
2021-02-16 09:58:35 +01:00
Henry Boisdequin
5ec4b060a7
make visit_projection
take a PlaceRef
2021-02-16 14:20:36 +05:30
Henry Boisdequin
30c5125fbe
update formating
2021-02-16 07:07:42 +05:30
Camille GILLOT
786a80e9ea
Only store a LocalDefId in hir::ImplItem.
2021-02-15 19:32:29 +01:00
Camille GILLOT
cebbba081e
Only store a LocalDefId in hir::Item.
...
Items are guaranteed to be HIR owner.
2021-02-15 19:32:10 +01:00
Camille GILLOT
bd3cd5dbed
Use an ItemId inside mir::GlobalAsm.
2021-02-15 19:24:58 +01:00