resolve to Java fields; more tests

This commit is contained in:
Dmitry Jemerov
2008-03-14 16:14:27 +03:00
parent dafa93878d
commit b6312bce11
4 changed files with 23 additions and 7 deletions
@@ -1,9 +1,6 @@
package com.jetbrains.python.psi.impl;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.ResolveState;
import com.intellij.psi.*;
import com.jetbrains.python.psi.types.PyType;
import com.jetbrains.python.psi.PyReferenceExpression;
import com.jetbrains.python.psi.PyResolveUtil;
@@ -23,6 +20,8 @@ public class PyJavaClassType implements PyType {
if (methods.length > 0) {
return methods [0]; // TODO[yole]: correct resolve
}
final PsiField field = myClass.findFieldByName(name, true);
if (field != null) return field;
return null;
}
@@ -0,0 +1,3 @@
from java.lang import System
System.ou<ref>t
@@ -0,0 +1,4 @@
from java.util import ArrayList
l = ArrayList()
l.s<ref>ize()
@@ -1,9 +1,7 @@
package com.jetbrains.python;
import com.intellij.openapi.application.PathManager;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReference;
import com.intellij.psi.*;
import com.intellij.testFramework.ResolveTestCase;
/**
@@ -21,6 +19,18 @@ public class PyToJavaResolveTest extends ResolveTestCase {
assertEquals("java.util.ArrayList", ((PsiClass) target).getQualifiedName());
}
public void testMethod() throws Exception {
PsiElement target = resolve();
assertTrue(target instanceof PsiMethod);
assertEquals("java.util.ArrayList", ((PsiMethod) target).getContainingClass().getQualifiedName());
}
public void testField() throws Exception {
PsiElement target = resolve();
assertTrue(target instanceof PsiField);
assertEquals("java.lang.System", ((PsiField) target).getContainingClass().getQualifiedName());
}
@Override
protected String getTestDataPath() {
return PathManager.getHomePath() + "/plugins/python/testData/resolve/pyToJava/";