mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
static methods from superclass imported with subclass qualifier
This commit is contained in:
+3
-3
@@ -92,18 +92,18 @@ public class GrImportStatementImpl extends GroovyPsiElementImpl implements GrImp
|
||||
|
||||
final String refName = ref.getReferenceName();
|
||||
if (nameHint == null || name.equals(nameHint.getName(state))) {
|
||||
final PsiField field = clazz.findFieldByName(refName, false);
|
||||
final PsiField field = clazz.findFieldByName(refName, true);
|
||||
if (field != null && field.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
if (!processor.execute(field, state)) return false;
|
||||
}
|
||||
|
||||
for (PsiMethod method : clazz.findMethodsByName(refName, false)) {
|
||||
for (PsiMethod method : clazz.findMethodsByName(refName, true)) {
|
||||
if (method.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
if (!processor.execute(method, state)) return false;
|
||||
}
|
||||
}
|
||||
|
||||
final PsiClass innerClass = clazz.findInnerClassByName(refName, false);
|
||||
final PsiClass innerClass = clazz.findInnerClassByName(refName, true);
|
||||
if (innerClass != null && innerClass.hasModifierProperty(PsiModifier.STATIC) && !processor.execute(innerClass, state)) return false;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -474,17 +474,17 @@ public class GrCodeReferenceElementImpl extends GrReferenceElementImpl<GrCodeRef
|
||||
PsiResolveHelper helper = JavaPsiFacade.getInstance(clazz.getProject()).getResolveHelper();
|
||||
List<GroovyResolveResult> result = new ArrayList<GroovyResolveResult>();
|
||||
|
||||
final PsiField field = clazz.findFieldByName(refName, false);
|
||||
final PsiField field = clazz.findFieldByName(refName, true);
|
||||
if (field != null && field.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
result.add(new GroovyResolveResultImpl(field, helper.isAccessible(field, ref, null)));
|
||||
}
|
||||
|
||||
final PsiMethod[] methods = clazz.findMethodsByName(refName, false);
|
||||
final PsiMethod[] methods = clazz.findMethodsByName(refName, true);
|
||||
for (PsiMethod method : methods) {
|
||||
result.add(new GroovyResolveResultImpl(method, helper.isAccessible(method, ref, null)));
|
||||
}
|
||||
|
||||
final PsiClass innerClass = clazz.findInnerClassByName(refName, false);
|
||||
final PsiClass innerClass = clazz.findInnerClassByName(refName, true);
|
||||
if (innerClass != null && innerClass.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
result.add(new GroovyResolveResultImpl(innerClass, helper.isAccessible(innerClass, ref, null)));
|
||||
}
|
||||
|
||||
+34
@@ -992,4 +992,38 @@ def foo(Integer a) {
|
||||
''')
|
||||
assertNotNull(ref.resolve())
|
||||
}
|
||||
|
||||
public void testStaticImportFromSuperClass() {
|
||||
def ref = configureByText('''\
|
||||
import static Derived.fo<caret>o
|
||||
|
||||
class Base {
|
||||
static foo(){print 'foo'}
|
||||
}
|
||||
|
||||
class Derived extends Base {
|
||||
}
|
||||
|
||||
foo()
|
||||
''')
|
||||
|
||||
assertNotNull(ref.resolve())
|
||||
}
|
||||
|
||||
public void testUsageOfStaticImportFromSuperClass() {
|
||||
def ref = configureByText('''\
|
||||
import static Derived.foo
|
||||
|
||||
class Base {
|
||||
static foo(){print 'foo'}
|
||||
}
|
||||
|
||||
class Derived extends Base {
|
||||
}
|
||||
|
||||
fo<caret>o()
|
||||
''')
|
||||
|
||||
assertNotNull(ref.resolve())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user