Enforce Behavior Annex action timeout legality rules 馃 - #3212
Merged
Conversation
lwrage
force-pushed
the
3184_enforce_action_timeout_rules
branch
from
September 11, 2026 16:16
6ed9b61 to
f01d637
Compare
Model valid action timeouts with same-source catches and invalid cases with missing, wrong-source, and timeout-conditioned transitions. Assert exact diagnostics and source ranges, including nested and expanded multi-source action blocks.
Check every timeout-bearing action block for a simple timeout transition from the same source state. Reject action timeouts on execution, dispatch-relative, and completion-relative timeout conditions, including every source created from a multi-source declaration. Update the Behavior Annex conformance record and corpus goldens for the new diagnostics.
lwrage
force-pushed
the
3184_enforce_action_timeout_rules
branch
from
September 11, 2026 16:22
f01d637 to
992f390
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3184
Summary
Cause and correction
The declarative-to-strict translator retained action-block timeouts, but the rules driver only processed each block's action content. No legality check paired an action timeout with a same-source timeout catch or rejected timeout-conditioned transitions.
The new D.3/D.6 legality check walks timeout-bearing action blocks, validates the enclosing transition condition, and searches the strict annex for a same-source simple timeout catch. The driver invokes it before deduplicating checks on action blocks shared by expanded transitions.
Regression coverage
Issue3184Testuses external AADL model projects and asserts exact diagnostic severity, message, and source range for:Validation
Issue3184Test: 5 tests passed, 0 failures/errors.org.osate.ba.testssuite: 119 tests, 0 failures/errors, 5 tracked skips.-T5and-Dtycho.localArtifacts=ignore: 143/143 projects succeeded.git diff --check: clean.Dependencies and residual risk
No dependent PRs. The branch is based directly on current
origin/master. This change adds static legality validation only; it does not change the grammar, metamodel, translation shape, or runtime timeout execution semantics.