Groovy traits : abstract trait methods are not clashing

This commit is contained in:
Max Medvedev
2014-06-10 15:50:33 +04:00
parent acf850e254
commit 25032fcdd6
@@ -87,13 +87,15 @@ public class ClashingTraitMethodsInspection extends BaseInspection {
if (superSignatures.size() > 1) {
List<GrTypeDefinition> traits = ContainerUtil.newArrayList();
for (HierarchicalMethodSignature superSignature : superSignatures) {
PsiClass superClass = superSignature.getMethod().getContainingClass();
if (GrTraitUtil.isTrait(superClass)) {
PsiMethod superMethod = superSignature.getMethod();
PsiClass superClass = superMethod.getContainingClass();
if (GrTraitUtil.isTrait(superClass) &&
!superMethod.getModifierList().hasExplicitModifier(PsiModifier.ABSTRACT)) {
traits.add((GrTypeDefinition)superClass);
}
}
if (!traits.isEmpty()) {
if (traits.size() > 1) {
clashingMethods.add(new ClashingMethod(signature, traits));
}
}