Clone
Lóránt Pintér
committed
on 05 Apr 19
Change order of supertype visiting to restore old behavior
In the past when a supertype and an implemented interface conflicted wrt the type… Show more
Change order of supertype visiting to restore old behavior

In the past when a supertype and an implemented interface conflicted wrt the type of a property, we picked the interface. This change restores that behavior, and thus fixes a bunch of tests.

However, this is not a proper fix for the problem. We should instead have the following behavior:

- if supertype and subtype disagree in the annotation used for a property, subtype should always win

- if supertypes (superclass and implemented interfaces) disagree, we should decide which annotation wins by observing an ordering between them, e.g. @Internal having lower priority than other type annotations

- if supertypes disagree, and they all have the same priority/ordering, it should be reported as a conflict the same way we report multiple annotations on the same property in the same class

Show less

green-master + 357 more