From 25032fcdd6fa9114ca306364799d61af7303d22f Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Tue, 10 Jun 2014 15:06:51 +0400 Subject: [PATCH] Groovy traits : abstract trait methods are not clashing --- .../confusing/ClashingTraitMethodsInspection.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java index 7a7664831fb8..a446f3821b5c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java @@ -87,13 +87,15 @@ public class ClashingTraitMethodsInspection extends BaseInspection { if (superSignatures.size() > 1) { List 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)); } }