You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for @@live/@@dead to set a default liveness annotation for subsequent items in a module/file scope, inheriting into nested modules and allowing later overrides.
Add focused DCE fixtures covering override + scope boundaries and live-vs-dead liveness propagation.
Update reanalyze deadcode expected output.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,8 @@
26
26
27
27
#### :rocket: New Feature
28
28
29
+
- Reanalyze: add scoped `@@live`/`@@dead` annotations for marking module/file sections as live or dead. https://github.com/rescript-lang/rescript/pull/8197
30
+
29
31
#### :bug: Bug fix
30
32
31
33
- Reanalyze: fix reactive/server stale results when cross-file references change without changing dead declarations (non-transitive mode). https://github.com/rescript-lang/rescript/pull/8173
Dead Value +ScopedAnnotationsLiveVsDead.DeadScope.+root
3434
+
deps: in=0 (live=0 dead=0) out=1
3435
+
-> +ScopedAnnotationsLiveVsDead.+middleDead
3436
+
Dead Value +ScopedAnnotationsOverride.M.+before
3437
+
Live (annotated) Value +ScopedAnnotationsOverride.M.+live1
3438
+
Live (annotated) Value +ScopedAnnotationsOverride.M.NestedInLive.+nestedLive
3439
+
Dead Value +ScopedAnnotationsOverride.M.+dead1
3440
+
Dead Value +ScopedAnnotationsOverride.M.NestedInDead.+nestedDead
3441
+
Live (annotated) Value +ScopedAnnotationsOverride.M.+live2
3442
+
Dead Value +ScopedAnnotationsOverride.+afterModules
3389
3443
Live (annotated) Value +Shadow.+test
3390
3444
Live (annotated) Value +Shadow.+test
3391
3445
Live (annotated) Value +Shadow.M.+test
@@ -4595,6 +4649,30 @@ Forward Liveness Analysis
4595
4649
RepeatedLabel.res:9:3-11
4596
4650
tabState.f is a record label never used to read a value
4597
4651
4652
+
Warning Dead Value
4653
+
ScopedAnnotationsLiveVsDead.res:9:1-24
4654
+
stillDeadOutside is never used
4655
+
4656
+
Warning Dead Value
4657
+
ScopedAnnotationsLiveVsDead.res:11:1-16
4658
+
leafDead is never used
4659
+
4660
+
Warning Dead Value
4661
+
ScopedAnnotationsLiveVsDead.res:12:1-25
4662
+
middleDead is never used
4663
+
4664
+
Warning Dead Value
4665
+
ScopedAnnotationsOverride.res:2:3-16
4666
+
M.before is never used
4667
+
4668
+
Warning Dead Module
4669
+
ScopedAnnotationsOverride.res:0:1
4670
+
ScopedAnnotationsOverride is a dead module as all its items are dead.
4671
+
4672
+
Warning Dead Value
4673
+
ScopedAnnotationsOverride.res:22:1-20
4674
+
afterModules is never used
4675
+
4598
4676
Warning Dead Value
4599
4677
Shadow.res:11:3-22
4600
4678
M.test is never used
@@ -4847,4 +4925,4 @@ Forward Liveness Analysis
4847
4925
OptArg.res:26:1-70
4848
4926
optional argument c of function wrapfourArgs is always supplied (2 calls)
4849
4927
4850
-
Analysis reported 305 issues (Incorrect Dead Annotation:1, Warning Dead Exception:2, Warning Dead Module:21, Warning Dead Type:87, Warning Dead Value:174, Warning Dead Value With Side Effects:2, Warning Redundant Optional Argument:6, Warning Unused Argument:12)
4928
+
Analysis reported 311 issues (Incorrect Dead Annotation:1, Warning Dead Exception:2, Warning Dead Module:22, Warning Dead Type:87, Warning Dead Value:179, Warning Dead Value With Side Effects:2, Warning Redundant Optional Argument:6, Warning Unused Argument:12)
0 commit comments