-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ST6RI-767: Some redefinitions are not correctly rendered (PlantUML) #561
Conversation
matchElement(). * VDefault (addSpecializations): Just make an InheritKey from typ (do not anything special here). * VPath (PC): Make it get aware of noRedefine. (PCFeatureChainExpression, PCItemFlowEnd): Set noRedefine to always false. (PCFeature, PCFeatureChain): Take noRedefine argument. (PCInheritKey): Just use the original noRedefine. (makeFeaturePC): Take noRedefine isRedefinition argument. (addContextForFeature): Take isRedefinition argument, and use makeInheritKeyForReferer() as well. (caseType): Set isRedefinition to true if sp is Redefinition.
FeatureUtil.getAllRedefinedFeaturesOf(). (traverseRest): Check features with markRedefining().
I checked this PR with many test cases. For example,
|
This PR also uses
The rendered result is: Previously, we had to explicitly redefine |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked this both in Eclipse and Jupyter. Looks good.
The changes in PR #558 introduced a bug so that a redefinition whose target is missing may not be correctly rendered. For example,
and
%viz --view interconnection p2::p21
rendersSo far, redefinitions are handled with inherit key of redefined features, but that does not work well in some cases such as the above. This PR enhances PC (
PathContext
) to properly handle redefinitions by differentiating the equivalence classes of redefinitions and non-redefinitions. By this enhancement, we can use the same inherit key with non-redefinition cases.