Fix not generating KotlinLightField for OBJECT$ and INSTANCE$ fields
Fix navigation from Java to such fields Fix TODO in converter
This commit is contained in:
@@ -44,6 +44,12 @@ public class ReferenceResolveInJavaTestGenerated extends AbstractReferenceResolv
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ClassObjectField.java")
|
||||
public void testClassObjectField() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/ClassObjectField.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("Constructor.java")
|
||||
public void testConstructor() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/Constructor.java");
|
||||
@@ -68,6 +74,12 @@ public class ReferenceResolveInJavaTestGenerated extends AbstractReferenceResolv
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ObjectInstance.java")
|
||||
public void testObjectInstance() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/ObjectInstance.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("PackageFacade.java")
|
||||
public void testPackageFacade() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInJava/PackageFacade.java");
|
||||
|
||||
@@ -20,11 +20,14 @@ import com.intellij.navigation.ItemPresentation;
|
||||
import com.intellij.navigation.NavigationItem;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import kotlin.Function1;
|
||||
import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.InTextDirectivesUtils;
|
||||
import org.jetbrains.jet.lang.psi.JetClass;
|
||||
import org.jetbrains.jet.lang.psi.JetObjectDeclaration;
|
||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||
import org.junit.Assert;
|
||||
|
||||
@@ -36,6 +39,14 @@ public final class ReferenceUtils {
|
||||
|
||||
public static String renderAsGotoImplementation(@NotNull PsiElement element) {
|
||||
PsiElement navigationElement = element.getNavigationElement();
|
||||
|
||||
if (navigationElement instanceof JetObjectDeclaration && ((JetObjectDeclaration) navigationElement).isClassObject()) {
|
||||
//default presenter return null for class object
|
||||
JetClass containingClass = PsiTreeUtil.getParentOfType(navigationElement, JetClass.class);
|
||||
assert containingClass != null;
|
||||
return "class object of " + renderAsGotoImplementation(containingClass);
|
||||
}
|
||||
|
||||
Assert.assertTrue(navigationElement instanceof NavigationItem);
|
||||
ItemPresentation presentation = ((NavigationItem) navigationElement).getPresentation();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user