We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent a7bf270 commit 1f7e875Copy full SHA for 1f7e875
1 file changed
src/tools/fuzzing/fuzzing.cpp
@@ -2490,7 +2490,13 @@ void TranslateToFuzzReader::mutateJSBoundary() {
2490
// TODO: once getExactness() is fixed (see there), use that
2491
newExactness = oneIn(2) ? Exact : Inexact;
2492
}
2493
- if (newHeapType.isBasic()) {
+ // We can only be exact if we are using the new heap type: that type is
2494
+ // exactly what is sent here, and no intermediate heap type would be valid.
2495
+ // For example, given $A :> $B :> $C, then maybeRefine($A, exact $C) can
2496
+ // return exact $C, but cannot return exact $B.
2497
+ //
2498
+ // Also, basic heap types cannot be exact.
2499
+ if (newHeapType != new_.getHeapType() || newHeapType.isBasic()) {
2500
newExactness = Inexact;
2501
2502
0 commit comments