bors
cd674d6179
Auto merge of #116300 - cjgillot:split-move, r=petrochenkov
...
Separate move path tracking between borrowck and drop elaboration.
The primary goal of this PR is to skip creating a `MovePathIndex` for path that do not need dropping in drop elaboration.
The 2 first commits are cleanups.
The next 2 commits displace `move` errors from move-path builder to borrowck. Move-path builder keeps the same logic, but does not carry error information any more.
The remaining commits allow to filter `MovePathIndex` creation according to types. This is used in drop elaboration, to avoid computing dataflow for paths that do not need dropping.
2023-10-24 00:25:32 +00:00
bors
41aa06ecf9
Auto merge of #116033 - bvanjoi:fix-116032, r=petrochenkov
...
report `unused_import` for empty reexports even it is pub
Fixes #116032
An easy fix. r? `@petrochenkov`
(Discovered this issue while reviewing #115993.)
2023-10-23 20:24:09 +00:00
bohan
482275b194
use visibility to check unused imports and delete some stmts
2023-10-22 21:27:46 +08:00
Camille GILLOT
7ae1851803
Use terse form for Fn bound.
2023-10-21 12:09:02 +00:00
Camille GILLOT
547af00019
Remove on_all_drop_children_bits.
...
As drop elaboration only tracks places that need dropping, is has become
equivalent to `on_all_children_bits`.
2023-10-21 10:33:37 +00:00
Camille GILLOT
252c64722f
Parametrize gather_moves by filter.
2023-10-21 10:31:39 +00:00
Camille GILLOT
4bedd7de6e
Stop computing error info in move path builder.
2023-10-21 10:30:58 +00:00
Camille GILLOT
90e6d29955
Avoid using a magic value for untracked locals.
2023-10-21 10:30:16 +00:00
Camille GILLOT
8d535070a2
Do not report errors from move path builder.
2023-10-21 10:29:40 +00:00
Camille GILLOT
a8e56d0b0b
Remove is_terminal_path.
...
That information is redundant. Is the path is terminal, `first_child` will
already be `None`.
2023-10-21 10:26:28 +00:00
Camille GILLOT
4abea83663
Improve naming and comments.
2023-10-21 07:01:25 +00:00
Camille GILLOT
751a079413
Implement JumpThreading pass.
2023-10-21 06:58:38 +00:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
Michael Goulet
b2d2184ede
Format all the let chains in compiler
2023-10-13 08:59:36 +00:00
Camille GILLOT
27d6a57e58
Preserve DebugInfo in DeadStoreElimination.
2023-10-06 15:46:11 +00:00
ouz-a
5d753abb30
have better explanation for relate_types
2023-10-02 23:39:45 +03:00
ouz-a
cd7f471931
Add docs, remove code, change subtyper code
2023-10-02 23:39:44 +03:00
ouz-a
3148e6a993
subtyping_projections
2023-10-02 23:37:49 +03:00
Oli Scherer
ec6f554536
Some tracing cleanups
2023-09-28 16:13:37 +00:00
bors
551c7183f8
Auto merge of #115794 - cjgillot:aggregate-no-box, r=davidtwco
...
Do not create a DerefLen place for `Box<[T]>`.
Fixes https://github.com/rust-lang/rust/issues/115789
2023-09-24 06:13:17 +00:00
Camille GILLOT
44ac8dcc71
Remove GeneratorWitness and rename GeneratorWitnessMIR.
2023-09-23 13:47:30 +00:00
Matthias Krüger
d4d0c840b3
Rollup merge of #115770 - ouz-a:match_elem_builder, r=lcnr
...
Match on elem first while building move paths
While working on https://github.com/rust-lang/rust/pull/115025 `@lcnr` and I observed "move_paths_for" function matched on the `Ty` instead of `Projection` which seems flawed as it's the `Projection`s that cause the problem not the type.
r? `@lcnr`
2023-09-22 23:12:34 +02:00
ouz-a
63df126f59
match array for constantindex and subslice
2023-09-22 16:28:45 +03:00
ouz-a
442c87a0b0
better bug message
2023-09-22 11:31:45 +03:00
ouz-a
d6efedcaf5
remove inner match
2023-09-22 11:21:55 +03:00
Ralf Jung
c94410c145
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
2023-09-21 08:12:30 +02:00
Camille GILLOT
e76b7f226a
Do not create a DerefLen place for Box<[T]>
.
2023-09-20 16:07:03 +00:00
ouz-a
0cb22a66eb
very verbose error handling
2023-09-12 21:09:29 +03:00
ouz-a
22b1acb455
match on elem first
2023-09-12 10:28:37 +03:00
Camille GILLOT
6ad6b4381c
Support non-scalar constants.
2023-09-11 16:29:41 +00:00
Camille GILLOT
4ad22b91fc
Correct comment and assumption.
2023-09-07 15:45:25 +00:00
Camille GILLOT
fc63543792
Support array length.
2023-09-06 16:05:04 +00:00
Camille GILLOT
7ef555d84a
Support non-trivial scalars in ConstProp.
2023-09-05 21:25:41 +00:00
Jason Newcomb
f686bd8949
Take &mut Results
in ResultsVisitor
2023-09-02 19:35:51 -04:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Ralf Jung
818ec8e23a
give some unwind-related terminators a more clear name
2023-08-20 15:52:38 +02:00
Camille GILLOT
f5e4eb91b7
Use Terminator::edges for backward analysis too.
2023-08-16 19:40:46 +00:00
Camille GILLOT
e9990ce89c
Only evaluate yield place after resume in liveness.
2023-08-16 18:12:18 +00:00
Camille GILLOT
7ded3409b8
Specify that method only applies statement effects.
2023-08-16 18:12:18 +00:00
Camille GILLOT
aa697f599e
Rename YieldResumeEffect.
2023-08-16 18:12:18 +00:00
Camille GILLOT
388f6a6413
Make TerminatorEdge plural.
2023-08-16 18:12:18 +00:00
Camille GILLOT
6cf15d4cb5
Rename MaybeUnreachable.
2023-08-16 18:12:18 +00:00
Camille GILLOT
f19cd3f2e1
Use TerminatorEdge for dataflow-const-prop.
2023-08-16 18:12:18 +00:00
Camille GILLOT
3acfa092db
Only run MaybeInitializedPlaces once for drop elaboration.
2023-08-16 18:12:18 +00:00
Camille GILLOT
5173d85043
Allow apply_terminator_effect to customize edges.
2023-08-16 18:12:17 +00:00
Camille GILLOT
32711b2b4e
Introduce MaybeUnreachable.
2023-08-16 18:12:17 +00:00
Camille GILLOT
934a99eb65
Move domain_size to GenKillAnalysis.
2023-08-16 18:12:17 +00:00
Camille GILLOT
8726cbc75f
Move initialization dataflow impls into their own module.
2023-08-16 18:12:17 +00:00
Camille GILLOT
760881b29d
Create bottom on-the-fly instead of cloning it.
2023-08-16 18:12:17 +00:00