code review

This commit is contained in:
Dmitry Jemerov
2015-09-14 13:53:08 +02:00
parent 3cf6395750
commit 9e6c0e7ee2
11 changed files with 50 additions and 24 deletions
@@ -16,6 +16,8 @@
package org.jetbrains.kotlin.fileClasses
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
@@ -103,3 +105,13 @@ public object JvmFileClassUtil {
}
public class ParsedJmvFileClassAnnotations(public val name: String, public val multipleFiles: Boolean)
public val JetFile.javaFileFacadeFqName: FqName
get() {
return CachedValuesManager.getCachedValue(this) {
val facadeFqName =
if (isCompiled) packageFqName.child(Name.identifier(virtualFile.nameWithoutExtension))
else JvmFileClassUtil.getFileClassInfoNoResolve(this).facadeClassFqName
CachedValueProvider.Result(facadeFqName, this)
}
}
@@ -31,7 +31,7 @@ import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.PathUtil
import com.intellij.util.SmartList
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.name.FqName
@@ -268,7 +268,7 @@ public object LightClassUtil {
if (parent is JetFile) {
// top-level declaration
val fqName = if (useNewPackageParts)
JvmFileClassUtil.getFileClassInfoNoResolve(parent).facadeClassFqName
parent.javaFileFacadeFqName
else
PackageClassUtils.getPackageClassFqName(parent.packageFqName)
@@ -26,7 +26,11 @@ import com.intellij.util.Processor
import com.intellij.util.containers.ContainerUtil
import com.intellij.util.containers.HashSet
import org.jetbrains.kotlin.asJava.JavaElementFinder
import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.stubindex.JetClassShortNameIndex
import org.jetbrains.kotlin.idea.stubindex.JetFileFacadeShortNameIndex
import org.jetbrains.kotlin.idea.stubindex.JetFunctionShortNameIndex
import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil
import org.jetbrains.kotlin.name.FqName
import java.util.*
@@ -37,10 +37,10 @@ import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.cls.ClsFormatException
import org.jetbrains.kotlin.asJava.*
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.decompiler.navigation.JetSourceNavigationHelper
import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope.kotlinSourceAndClassFiles
import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope.kotlinSourcesAndLibraries
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
@@ -17,12 +17,6 @@
package org.jetbrains.kotlin.idea.stubindex
import com.intellij.psi.stubs.IndexSink
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.stubs.KotlinCallableStubBase
import org.jetbrains.kotlin.util.aliasImportMap
@@ -74,13 +68,3 @@ private fun JetTypeElement.index<TDeclaration : JetCallableDeclaration>(declarat
else -> error("Unsupported type: $this")
}
}
public val JetFile.javaFileFacadeFqName: FqName
get() {
return CachedValuesManager.getCachedValue(this) {
val facadeFqName =
if (isCompiled) packageFqName.child(Name.identifier(virtualFile.nameWithoutExtension))
else JvmFileClassUtil.getFileClassInfoNoResolve(this).facadeClassFqName
CachedValueProvider.Result(facadeFqName, this)
}
}
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import com.intellij.openapi.fileTypes.FileTypeManager
import com.intellij.openapi.util.io.FileUtil
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiElement
import com.intellij.psi.search.SearchScope
@@ -46,7 +45,7 @@ class RenameKotlinFileProcessor() : RenamePsiFileProcessor() {
val project = jetFile.project
val facadeClass = JavaPsiFacade.getInstance(project).findClass(facadeFqName.asString(), project.allScope())
if (facadeClass != null) {
allRenames[facadeClass] = PackagePartClassUtils.getPartClassName(FileUtil.getNameWithoutExtension(newName))
allRenames[facadeClass] = PackagePartClassUtils.getFilePartShortName(newName)
}
}
}
@@ -25,7 +25,7 @@ import com.intellij.openapi.util.Ref
import com.intellij.psi.PsiElement
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.MainFunctionDetector
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil
@@ -99,7 +99,7 @@ public class KotlinRunConfigurationProducer : RunConfigurationProducer<JetRunCon
public fun getStartClassFqName(container: JetDeclarationContainer?): FqName? = when(container) {
null -> null
is JetFile -> JvmFileClassUtil.getFileClassInfoNoResolve(container).facadeClassFqName
is JetFile -> container.javaFileFacadeFqName
is JetClassOrObject -> {
if (container is JetObjectDeclaration && container.isCompanion()) {
val containerClass = container.getParentOfType<JetClass>(true)
@@ -0,0 +1,8 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction
// OPTIONS: usages
@file:[JvmName("RequestProcessor") JvmMultifileClass]
package server
fun <caret>processRequest() = "foo"
@@ -0,0 +1,11 @@
package client;
import server.RequestProcessor;
class JClient {
String s = RequestProcessor.processRequest();
String sendRequest() {
return RequestProcessor.processRequest();
}
}
@@ -0,0 +1,2 @@
Unclassified usage (6: 33) String s = RequestProcessor.processRequest();
Unclassified usage (9: 33) return RequestProcessor.processRequest();
@@ -606,6 +606,12 @@ public class JetFindUsagesTestGenerated extends AbstractJetFindUsagesTest {
doTest(fileName);
}
@TestMetadata("kotlinTopLevelMethodUsagesMultifile.0.kt")
public void testKotlinTopLevelMethodUsagesMultifile() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesMultifile.0.kt");
doTest(fileName);
}
@TestMetadata("kotlinTopLevelMethodUsagesNoImport.0.kt")
public void testKotlinTopLevelMethodUsagesNoImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findFunctionUsages/kotlinTopLevelMethodUsagesNoImport.0.kt");