void (AnnotationHolder holder, @NotNull GrModifierList modifierList, PsiMember member) { boolean hasPrivate = modifierList.hasExplicitModifier(PsiModifier.PRIVATE); boolean hasPublic = modifierList.hasExplicitModifier(PsiModifier.PUBLIC); boolean hasProtected = modifierList.hasExplicitModifier(PsiModifier.PROTECTED); if (hasPrivate && hasPublic || hasPrivate && hasProtected || hasPublic && hasProtected) { String message = GroovyBundle.message("illegal.combination.of.modifiers"); AnnotationBuilder builder = holder.newAnnotation(HighlightSeverity.ERROR, message).range(modifierList); if (hasPrivate) { builder = registerLocalFix(builder, new GrModifierFix(member, PsiModifier.PRIVATE, false, false, GrModifierFix.MODIFIER_LIST), modifierList, message, ProblemHighlightType.ERROR, modifierList.getTextRange()); } if (hasProtected) { builder = registerLocalFix(builder, new GrModifierFix(member, PsiModifier.PROTECTED, false, false, GrModifierFix.MODIFIER_LIST), modifierList, message, ProblemHighlightType.ERROR, modifierList.getTextRange()); } if (hasPublic) { builder = registerLocalFix(builder, new GrModifierFix(member, PsiModifier.PUBLIC, false, false, GrModifierFix.MODIFIER_LIST), modifierList, message, ProblemHighlightType.ERROR, modifierList.getTextRange()); } builder.create(); } else if (member instanceof PsiClass && member.getContainingClass() == null && GroovyConfigUtils.getInstance().isVersionAtLeast(member, GroovyConfigUtils.GROOVY2_0)) { checkModifierIsNotAllowed(modifierList, PsiModifier.PRIVATE, GroovyBundle.message("top.level.class.may.not.have.private.modifier"), holder); checkModifierIsNotAllowed(modifierList, PsiModifier.PROTECTED, GroovyBundle.message("top.level.class.may.not.have.protected.modifier"), holder); } }