Fixed KT-2488 Optimizing imports removes references to enum constants when they are referred via short name in code

This commit is contained in:
Natalia.Ukhorskaya
2012-08-31 14:50:17 +04:00
parent 737b794935
commit 84e846649f
4 changed files with 34 additions and 2 deletions
@@ -133,7 +133,11 @@ public class JetPsiUtil {
@Nullable
public static FqName getFQName(JetNamedDeclaration namedDeclaration) {
if (namedDeclaration instanceof JetObjectDeclarationName) {
JetObjectDeclaration objectDeclaration = PsiTreeUtil.getParentOfType(namedDeclaration, JetObjectDeclaration.class);
JetNamedDeclaration objectDeclaration = PsiTreeUtil.getParentOfType(namedDeclaration, JetObjectDeclaration.class);
if (objectDeclaration == null) {
objectDeclaration = PsiTreeUtil.getParentOfType(namedDeclaration, JetEnumEntry.class);
}
if (objectDeclaration == null) {
return null;
}
@@ -0,0 +1,12 @@
package test
import test.MyEnum.ONE
fun main(args: Array<String>) {
println(ONE)
}
public enum class MyEnum {
ONE
TWO
}
@@ -0,0 +1,12 @@
package test
import test.MyEnum.ONE
fun main(args: Array<String>) {
println(ONE)
}
public enum class MyEnum {
ONE
TWO
}
@@ -52,6 +52,10 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase {
doTest();
}
public void testKt2488() throws Exception {
doTest();
}
public void doTest() throws Exception {
configureByFile(fileName());
invokeFormatFile();
@@ -100,4 +104,4 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase {
getProject(), new JetImportOptimizer().processFile(getFile()),
"Optimize Imports", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION);
}
}
}