Skip to content

Conversation

@graalvmbot
Copy link
Collaborator

When TypeFlow.validateFixedPointState tries to propagate type state from a flow to its uses, it should only do so if the use is enabled, because the saturation callback methods onInputSaturated and onObservedSaturated are only registered but not executed for disabled flows. Their execution is delayed until the flow becomes enabled. Therefore, TypeFlow.processInputState, which in some cases (e.g. conditional flow) explicitly queries the state of its inputs and observees) might return a bigger value compared to the original state of the flow, which is actually valid behaviour in this case (as the saturation callbacks that can change the type state of the flow were not yet executed, because it is not enabled). We should therefore only try to propagate values into already enabled flows in the type flow graph validation.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label May 14, 2025
@graalvmbot graalvmbot force-pushed the d-kozak/GR-64965/typeflow-validation-fix branch from f863544 to 6bfe8c4 Compare May 16, 2025 13:33
@graalvmbot graalvmbot closed this May 17, 2025
@graalvmbot graalvmbot deleted the d-kozak/GR-64965/typeflow-validation-fix branch May 17, 2025 09:31
@graalvmbot graalvmbot merged commit 70972c3 into master May 17, 2025
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants