The inheritance isn't inspected correctly in other cases than basic ones:
In this case CDK event doesn't notice there is attribute defined in I.
It can be fixed either by:
- C implements I.
- moving attribute to A or directly to C
CDK also takes into account whether we have abstract or concrete implementation:
In this case the attribute won't be generated, because it is already implemented.
The inheritance issue get then worse by inappropriate application of attribute's properties in either of those cases:
- C has concrete implementation of #getAttr(), C implements I
- then generated component contains generated #getAttr() even though it's already implemented
- implementation of #getAttr() is moved to A
- then #getAttr() is again generated even though it's implemented in A
I guess Those issues are caused by incomplete implementation of CDK's reflection scanning mechanisms.