feat(emv2): error-propagation traversal across AADL connection graph (v0.10.x)#225
Open
avrabe wants to merge 3 commits into
Open
feat(emv2): error-propagation traversal across AADL connection graph (v0.10.x)#225avrabe wants to merge 3 commits into
avrabe wants to merge 3 commits into
Conversation
…(v0.10.x) Introduces emv2_propagation.rs — a new analysis module that walks the semantic connection graph to compute which downstream components inherit each declared error type. The Emv2Overlay carries in/out propagation and flow declarations (not yet integrated into SystemInstance); compute_error_ propagation returns ErrorPropagationReport with chains, local_flows, and diagnostics. Cycle detection tracks (component, error_type) pairs. 6 unit tests cover single-hop, 3-hop chain, cycle, path-flow isolation, case- insensitive matching, and no-connection baseline. Wired into register_all / register_all_except_wctt. Adds REQ-EMV2-PROPAGATION-001 + TEST-EMV2- PROPAGATION to artifact YAML files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two surgical fixes surfaced by the gate after smithy resumed: 1. crates/spar-analysis/src/emv2_propagation.rs:487 — clippy `let_and_return`: dropped the bound `idx` and returned `alloc(...)` directly. Pure refactor, no behavior change. 2. crates/spar-analysis/src/tests.rs:1640 — `test_register_all_count` expected 30 passes; the new emv2_propagation pass makes it 31. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
# Conflicts: # artifacts/requirements.yaml # artifacts/verification.yaml
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.
Summary
emv2_propagation.rsmodule:Emv2Overlaycarries in/out propagation and flow declarations;compute_error_propagationreturnsErrorPropagationReportwith chains, local flows, and diagnostics; analysis only, no codegenregister_all/register_all_except_wctt; addsREQ-EMV2-PROPAGATION-001+TEST-EMV2-PROPAGATIONto artifact YAML filesExample chain from test fixture
Single-hop test (
emv2_propagation_single_hop): componentsensor(Device) declaresout propagation { BadValue }, componentcontroller(Process) declaresin propagation { BadValue }, one semantic connection between them. Result:Test plan
cargo test -p spar-analysis emv2_propagation— 6 tests pass (single-hop, 3-hop chain, cycle detection, path-flow isolation, case-insensitive match, no-connection baseline)cargo clippy -p spar-analysis -- -D warnings— cleancargo fmt --check— cleanrivet validate— YAML parse error at line 1615 of verification.yaml is pre-existing (confirmed against main), not introduced by this PR🤖 Generated with Claude Code