Skip to content

ST6RI-961 There can be duplicate implicit Subsettings for structurally equivalent feature chains - #792

Merged
seidewitz merged 2 commits into
masterfrom
ST6RI-961
Sep 1, 2026
Merged

ST6RI-961 There can be duplicate implicit Subsettings for structurally equivalent feature chains#792
seidewitz merged 2 commits into
masterfrom
ST6RI-961

Conversation

@adaussy

@adaussy adaussy commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

This PR corrects a bug that results in duplicate, structurally equivalent implicit Subsetting relationships targeting feature chains.

Background

ReferenceUsageAdapter#addDefaultGeneralType() creates an implicit Subsetting from the second input parameter of a triggered TransitionUsage to:

[triggerAction, triggerPayloadParameter]

Previously, the guard in TypeAdapter#isImplicitSpecializationFor() relied on List.contains() and therefore compared the root Feature instances representing the chains. Since FeatureUtil.chainFeatures() creates a new Feature instance on every call, an existing structurally equivalent chain was not detected. Two equivalent implicit Subsettings could consequently be stored in implicitGeneralTypes.

These duplicates could later be materialized as separate relationships by TypeUtil.insertImplicitSpecializations().

Changes

Update TypeAdapter#isImplicitSpecializationFor() to structurally compare feature chains used as general types of implicit relationships.

@seidewitz seidewitz changed the title St6RI-961 ST6RI-961 There can be duplicate implicit Subsettings for structurally equivalent feature chains Aug 31, 2026
@seidewitz seidewitz self-assigned this Aug 31, 2026
@seidewitz seidewitz added the bug Something isn't working label Aug 31, 2026
@seidewitz seidewitz added this to the 2026-08 milestone Aug 31, 2026
@seidewitz
seidewitz merged commit 13c32ea into master Sep 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants