diff --git a/idea/src/org/jetbrains/jet/plugin/editor/importOptimizer/JetImportOptimizer.java b/idea/src/org/jetbrains/jet/plugin/editor/importOptimizer/JetImportOptimizer.java index f3d55253980..31049a9dac3 100644 --- a/idea/src/org/jetbrains/jet/plugin/editor/importOptimizer/JetImportOptimizer.java +++ b/idea/src/org/jetbrains/jet/plugin/editor/importOptimizer/JetImportOptimizer.java @@ -129,7 +129,7 @@ public class JetImportOptimizer implements ImportOptimizer { @Override public void visitReferenceExpression(JetReferenceExpression expression) { - if (PsiTreeUtil.getParentOfType(expression, JetQualifiedExpression.class) == null) { + if (PsiTreeUtil.getParentOfType(expression, JetImportDirective.class) == null) { PsiReference reference = expression.getReference(); if (reference != null) { List references = new ArrayList(); @@ -145,7 +145,7 @@ public class JetImportOptimizer implements ImportOptimizer { } for (PsiElement psiReference : references) { - FqName fqName = getElementFQName(psiReference); + FqName fqName = getElementUsageFQName(psiReference); if (fqName != null) { usedQualifiedNames.add(fqName); } @@ -163,7 +163,7 @@ public class JetImportOptimizer implements ImportOptimizer { @Nullable - public static FqName getElementFQName(PsiElement element) { + public static FqName getElementUsageFQName(PsiElement element) { if (element instanceof JetClassOrObject) { return JetPsiUtil.getFQName((JetClassOrObject) element); } @@ -184,6 +184,10 @@ public class JetImportOptimizer implements ImportOptimizer { if (containingClass != null) { String classFQNStr = containingClass.getQualifiedName(); if (classFQNStr != null) { + if (method.isConstructor()) { + return new FqName(classFQNStr); + } + FqName classFQN = new FqName(classFQNStr); if (classFQN.shortName().equals(JvmAbi.PACKAGE_CLASS)) { return QualifiedNamesUtil.combine(classFQN.parent(), method.getName()); @@ -197,6 +201,4 @@ public class JetImportOptimizer implements ImportOptimizer { return null; } - - } diff --git a/idea/testData/editor/optimizeImports/UnusedImports.kt b/idea/testData/editor/optimizeImports/UnusedImports.kt index 1a073f5d448..9d371708340 100644 --- a/idea/testData/editor/optimizeImports/UnusedImports.kt +++ b/idea/testData/editor/optimizeImports/UnusedImports.kt @@ -4,10 +4,11 @@ import java.lang.StringBuilder import java.net.HttpRetryException import java.util.ArrayList import kotlin.util.measureTimeMillis +import java.util.HashMap class Action { fun test() { - measureTimeMillis({ println("Some")}) + measureTimeMillis({ println(HashMap().size()) }) val test : ArrayList? = null } } \ No newline at end of file diff --git a/idea/testData/editor/optimizeImports/UnusedImports_after.kt b/idea/testData/editor/optimizeImports/UnusedImports_after.kt index 0287773ec7d..8b49df7fdde 100644 --- a/idea/testData/editor/optimizeImports/UnusedImports_after.kt +++ b/idea/testData/editor/optimizeImports/UnusedImports_after.kt @@ -1,9 +1,10 @@ import java.util.ArrayList +import java.util.HashMap import kotlin.util.measureTimeMillis class Action { fun test() { - measureTimeMillis({ println("Some")}) + measureTimeMillis({ println(HashMap().size()) }) val test : ArrayList? = null } } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java index 2e4b3298d6d..605c3441fdd 100644 --- a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java @@ -98,8 +98,7 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase { private static void invokeFormatFile() { CommandProcessor.getInstance().executeCommand( - getProject(), new JetImportOptimizer().processFile(getFile()), - "Optimize Imports", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION); + getProject(), new JetImportOptimizer().processFile(getFile()), + "Optimize Imports", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION); } - } \ No newline at end of file