Class CheckConflictingMethods

All Implemented Interfaces:
Predicate<AggregateSymbol>

final class CheckConflictingMethods extends TypedSymbolAccess implements Predicate<AggregateSymbol>
Checks that methods from a super and one or more traits do not conflict. This is due to the fact that both a super and also one or more traits can actually have implementations of the same method signature. The solution is to raise an error and get the ek9 developer to create a new method in the aggregate that is using the super/traits and then pick the implementation they want or define a totally new one. Returns true if there are no conflicting methods. Now this may mean because all constructs inherit from 'Any', then there a multiple routes to Any. Also, if we have a defined implementation anywhere, then we want to evict the Any method because that's just a default no operation.