From 116b8ce362fc4bfc9fc4c0cc0a9368357eb01a5e Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Mon, 17 Dec 2012 16:21:47 +0400 Subject: [PATCH] IDEA-97643 don't highlight methods of @Category annotated class with 'Method may be static' --- plugins/groovy/src/META-INF/plugin.xml | 2 ++ ...rCategoryMethodsCantBeStaticExtension.java | 36 +++++++++++++++++++ .../lang/highlighting/GrInspectionTest.groovy | 17 +++++++++ 3 files changed, 55 insertions(+) create mode 100644 plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/declaration/GrCategoryMethodsCantBeStaticExtension.java diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml index 2a46efef7bfe..20281c37e0e0 100644 --- a/plugins/groovy/src/META-INF/plugin.xml +++ b/plugins/groovy/src/META-INF/plugin.xml @@ -346,6 +346,8 @@ order="last"/> + + { + @Override + public boolean value(PsiElement t) { + if (t instanceof GrMethod) { + final PsiClass clazz = ((GrMethod)t).getContainingClass(); + if (clazz != null && GdkMethodUtil.getCategoryType(clazz) != null) { + return true; + } + } + + return false; + } +} diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrInspectionTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrInspectionTest.groovy index b0a9a029d3a7..eec311b3114e 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrInspectionTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/highlighting/GrInspectionTest.groovy @@ -21,6 +21,7 @@ import org.jetbrains.plugins.groovy.codeInspection.confusing.* import org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialConditionalInspection import org.jetbrains.plugins.groovy.codeInspection.control.GroovyTrivialIfInspection import org.jetbrains.plugins.groovy.codeInspection.control.GroovyUnnecessaryReturnInspection +import org.jetbrains.plugins.groovy.codeInspection.declaration.GrMethodMayBeStaticInspection import org.jetbrains.plugins.groovy.codeInspection.metrics.GroovyOverlyLongMethodInspection import org.jetbrains.plugins.groovy.codeInspection.noReturnMethod.MissingReturnInspection import org.jetbrains.plugins.groovy.codeInspection.untypedUnresolvedAccess.GrUnresolvedAccessInspection @@ -184,4 +185,20 @@ print foo+barfoo() { + print 2 + } +} + +@groovy.lang.Category(Cat) +class I{ + def foo() { + print 2 + } +} +''', GrMethodMayBeStaticInspection) + } }