Filter mixins that have different types #1510
Merged
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.
Similar to what was done in #425, I've filtered out the
mixins that have different type than the final shape they're
applied to.
As such, in the example above,
HasName
has a optional namemember where as
Person
inherits the mixin but makes the memberrequired. The filtering catches that and as a result the mixin is
removed from the list of mixins to add on
Person
.This behaviour aligns with the behaviour that happens when no
@adt
trait is added and
Person
is code generated on it's own. In bothcases, now, the trait
HasName
is not extended because the types ofname
don't align.PR Checklist (not all items are relevant to all PRs)