Java: Replace the MaD Object.clone() models with a non-aliasing value step.
Switching data flow stage 3 to path-insensitive type pruning flow highlighted that the MaD clone models were providing false type information in the sense that they claim to be able to store into Element, MapKey, and MapValue for any type. This is misleading to path-insensitive type pruning.
With the introduction of support for non-aliasing value steps in the data flow library, we can model clone steps as value steps instead without accidental back-propagation of side-effects.
Local + MRVA top 100 checking showed only small changes in tuple counts, although a number of FPs were fixed on apache/hadoop for one query.
:warning: The head of this PR and the base branch were compared for differences in the framework coverage reports. The generated reports are available in the artifacts of this workflow run. The differences will be picked up by the nightly job after the PR gets merged.
Click to show differences in coverage
java
Generated file changes for java
- Changes to framework-coverage-java.rst:
- Java Standard Library,``java.*``,10,4267,255,95,,9,,,26
+ Java Standard Library,``java.*``,10,4264,255,95,,9,,,26
- Totals,,310,25138,2598,367,16,128,33,1,409
+ Totals,,310,25135,2598,367,16,128,33,1,409
- Changes to framework-coverage-java.csv:
- java.lang,38,3,759,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,,3,,,681,78
+ java.lang,38,3,756,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,,3,,,681,75
Most of the test failures are model numbering changes, but not all.