Refactor: rename KtLightClassForExplicitDeclaration -> KtLightClassForSourceDeclaration

This commit is contained in:
Pavel V. Talanov
2016-07-26 15:14:26 +03:00
parent b686b37cbf
commit 999c8e7486
16 changed files with 48 additions and 48 deletions
@@ -28,7 +28,7 @@ import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
import org.jetbrains.kotlin.asJava.builder.LightClassConstructionContext
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
@@ -134,7 +134,7 @@ class CliLightClassGenerationSupport(project: Project) : LightClassGenerationSup
}
override fun getLightClass(classOrObject: KtClassOrObject): KtLightClass? {
return KtLightClassForExplicitDeclaration.create(classOrObject)
return KtLightClassForSourceDeclaration.create(classOrObject)
}
override fun resolveToDescriptor(declaration: KtDeclaration): DeclarationDescriptor? {
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
internal open class KtLightClassForAnonymousDeclaration(fqNameFunction: ((KtClassOrObject) -> FqName),
classOrObject: KtClassOrObject) :
KtLightClassForExplicitDeclaration(fqNameFunction, classOrObject), PsiAnonymousClass {
KtLightClassForSourceDeclaration(fqNameFunction, classOrObject), PsiAnonymousClass {
private var cachedBaseType: SoftReference<PsiClassType>? = null
@@ -101,7 +101,7 @@ internal open class KtLightClassForAnonymousDeclaration(fqNameFunction: ((KtClas
}
override fun isInheritor(baseClass: PsiClass, checkDeep: Boolean): Boolean {
if (baseClass is KtLightClassForExplicitDeclaration) {
if (baseClass is KtLightClassForSourceDeclaration) {
return super.isInheritor(baseClass, checkDeep)
}
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtClassOrObject
open class KtLightClassForInterfaceDefaultImpls(
classFqName: FqName,
classOrObject: KtClassOrObject)
: KtLightClassForExplicitDeclaration({ classFqName }, classOrObject){
: KtLightClassForSourceDeclaration({ classFqName }, classOrObject){
override fun copy(): PsiElement {
return KtLightClassForInterfaceDefaultImpls(classFqName, classOrObject.copy() as KtClassOrObject)
@@ -47,7 +47,7 @@ open class KtLightClassForInterfaceDefaultImpls(
throw IncorrectOperationException("Impossible to rename DefaultImpls")
}
override fun getContainingClass() = KtLightClassForExplicitDeclaration.create(classOrObject)
override fun getContainingClass() = KtLightClassForSourceDeclaration.create(classOrObject)
override fun getOwnInnerClasses() = emptyList<PsiClass>()
}
@@ -56,7 +56,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
import java.util.*
import javax.swing.Icon
open class KtLightClassForExplicitDeclaration(
open class KtLightClassForSourceDeclaration(
private val classFqNameFunction: ((KtClassOrObject) -> FqName),
protected val classOrObject: KtClassOrObject)
: KtWrappingLightClass(classOrObject.manager), KtJavaMirrorMarker, StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
@@ -160,7 +160,7 @@ open class KtLightClassForExplicitDeclaration(
override fun getFqName(): FqName = classFqName
override fun copy(): PsiElement {
return KtLightClassForExplicitDeclaration({ classFqName }, classOrObject.copy() as KtClassOrObject)
return KtLightClassForSourceDeclaration({ classFqName }, classOrObject.copy() as KtClassOrObject)
}
override val clsDelegate: PsiClass by lazy(LazyThreadSafetyMode.PUBLICATION) {
@@ -240,7 +240,7 @@ open class KtLightClassForExplicitDeclaration(
if (this === other) return true
if (other == null || javaClass != other.javaClass) return false
val aClass = other as KtLightClassForExplicitDeclaration
val aClass = other as KtLightClassForSourceDeclaration
if (classFqName != aClass.classFqName) return false
@@ -276,9 +276,9 @@ open class KtLightClassForExplicitDeclaration(
override fun getQualifiedName(): String? = classFqName.asString()
private val _modifierList : PsiModifierList by lazy(LazyThreadSafetyMode.PUBLICATION) {
object : KtLightModifierListWithExplicitModifiers(this@KtLightClassForExplicitDeclaration, computeModifiers()) {
object : KtLightModifierListWithExplicitModifiers(this@KtLightClassForSourceDeclaration, computeModifiers()) {
override val delegate: PsiAnnotationOwner
get() = this@KtLightClassForExplicitDeclaration.delegate.modifierList!!
get() = this@KtLightClassForSourceDeclaration.delegate.modifierList!!
}
}
@@ -376,7 +376,7 @@ open class KtLightClassForExplicitDeclaration(
override fun isInheritor(baseClass: PsiClass, checkDeep: Boolean): Boolean {
val qualifiedName: String?
if (baseClass is KtLightClassForExplicitDeclaration) {
if (baseClass is KtLightClassForSourceDeclaration) {
val baseDescriptor = baseClass.getDescriptor()
qualifiedName = if (baseDescriptor != null) DescriptorUtils.getFqName(baseDescriptor).asString() else null
}
@@ -427,7 +427,7 @@ open class KtLightClassForExplicitDeclaration(
FINAL_KEYWORD to PsiModifier.FINAL)
fun create(classOrObject: KtClassOrObject): KtLightClassForExplicitDeclaration? {
fun create(classOrObject: KtClassOrObject): KtLightClassForSourceDeclaration? {
if (classOrObject is KtObjectDeclaration && classOrObject.isObjectLiteral()) {
if (classOrObject.containingFile.virtualFile == null) {
return null
@@ -443,7 +443,7 @@ open class KtLightClassForExplicitDeclaration(
}
val fqName = predictFqName(classOrObject) ?: return null
return KtLightClassForExplicitDeclaration({ fqName }, classOrObject)
return KtLightClassForSourceDeclaration({ fqName }, classOrObject)
}
private fun isEnumEntryWithoutBody(classOrObject: KtClassOrObject): Boolean {
@@ -520,6 +520,6 @@ open class KtLightClassForExplicitDeclaration(
return false
}
private val LOG = Logger.getInstance(KtLightClassForExplicitDeclaration::class.java)
private val LOG = Logger.getInstance(KtLightClassForSourceDeclaration::class.java)
}
}
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.asJava
import com.intellij.psi.PsiElement
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.asJava.builder.OutermostKotlinClassLightClassData
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
@@ -42,7 +42,7 @@ fun getJvmSignatureDiagnostics(element: PsiElement, otherDiagnostics: Diagnostic
}
fun getDiagnosticsForClass(ktClassOrObject: KtClassOrObject): Diagnostics {
return (KtLightClassForExplicitDeclaration.getLightClassData(ktClassOrObject) as? OutermostKotlinClassLightClassData)?.extraDiagnostics ?: Diagnostics.EMPTY
return (KtLightClassForSourceDeclaration.getLightClassData(ktClassOrObject) as? OutermostKotlinClassLightClassData)?.extraDiagnostics ?: Diagnostics.EMPTY
}
fun doGetDiagnostics(): Diagnostics? {
@@ -23,7 +23,7 @@ import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.impl.compiled.ClsFileImpl
import com.intellij.psi.stubs.PsiClassHolderFileStub
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
@@ -51,7 +51,7 @@ open class FakeFileForLightClass(
override fun hashCode(): Int {
val thisClass = lightClass()
if (thisClass is KtLightClassForExplicitDeclaration) return ktFile.hashCode()
if (thisClass is KtLightClassForSourceDeclaration) return ktFile.hashCode()
return thisClass.hashCode()
}
@@ -61,8 +61,8 @@ open class FakeFileForLightClass(
val thisClass = lightClass()
val anotherClass = other.lightClass()
if (thisClass is KtLightClassForExplicitDeclaration) {
return anotherClass is KtLightClassForExplicitDeclaration && ktFile == other.ktFile
if (thisClass is KtLightClassForSourceDeclaration) {
return anotherClass is KtLightClassForSourceDeclaration && ktFile == other.ktFile
}
return thisClass == anotherClass
@@ -23,7 +23,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiElement
import com.intellij.ui.RowIcon
import com.intellij.util.PlatformIcons
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.idea.caches.resolve.KtLightClassForDecompiledDeclaration
import org.jetbrains.kotlin.lexer.KtTokens
@@ -90,7 +90,7 @@ class KotlinIconProvider : IconProvider(), DumbAware {
//TODO (light classes for decompiled files): correct presentation
if (origin != null) origin.getBaseIcon() else KotlinIcons.CLASS
}
is KtLightClassForExplicitDeclaration -> navigationElement.getBaseIcon()
is KtLightClassForSourceDeclaration -> navigationElement.getBaseIcon()
is KtNamedFunction -> when {
receiverTypeReference != null -> KotlinIcons.EXTENSION_FUNCTION
getStrictParentOfType<KtNamedDeclaration>() is KtClass ->
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.asJava.builder.ClsWrapperStubPsiFactory
import org.jetbrains.kotlin.asJava.builder.LightClassConstructionContext
import org.jetbrains.kotlin.asJava.classes.FakeLightClassForFileOfPackage
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -145,7 +145,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
if (virtualFile != null) {
when {
ProjectRootsUtil.isProjectSourceFile(project, virtualFile) ->
return KtLightClassForExplicitDeclaration.create(classOrObject)
return KtLightClassForSourceDeclaration.create(classOrObject)
ProjectRootsUtil.isLibraryClassFile(project, virtualFile) ->
return getLightClassForDecompiledClassOrObject(classOrObject)
ProjectRootsUtil.isLibrarySourceFile(project, virtualFile) ->
@@ -154,7 +154,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
}
if (classOrObject.getContainingKtFile().analysisContext != null) {
// explicit request to create light class from dummy.kt
return KtLightClassForExplicitDeclaration.create(classOrObject)
return KtLightClassForSourceDeclaration.create(classOrObject)
}
return null
}
@@ -34,7 +34,7 @@ import com.intellij.xdebugger.breakpoints.XLineBreakpoint
import com.intellij.xdebugger.breakpoints.XLineBreakpointType
import com.intellij.xdebugger.breakpoints.ui.XBreakpointCustomPropertiesPanel
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.debugger.breakpoints.dialog.AddFieldBreakpointDialog
@@ -88,7 +88,7 @@ class KotlinFieldBreakpointType : JavaBreakpointType<KotlinPropertyBreakpointPro
is KtLightClassForFacade -> {
psiClass.files.asSequence().mapNotNull { createBreakpointIfPropertyExists(it, it, className, fieldName) }.firstOrNull()
}
is KtLightClassForExplicitDeclaration -> {
is KtLightClassForSourceDeclaration -> {
val jetClass = psiClass.kotlinOrigin
createBreakpointIfPropertyExists(jetClass, jetClass.getContainingKtFile(), className, fieldName)
}
@@ -40,7 +40,7 @@ import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.asJava.LightClassUtilsKt;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration;
import org.jetbrains.kotlin.idea.projectView.KtClassOrObjectTreeNode;
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberInfo;
import org.jetbrains.kotlin.idea.refactoring.memberInfo.KotlinMemberSelectionPanel;
@@ -114,8 +114,8 @@ public class MoveKotlinNestedClassesDialog extends RefactoringDialog {
new ClassFilter() {
@Override
public boolean isAccepted(PsiClass aClass) {
if (!(aClass instanceof KtLightClassForExplicitDeclaration)) return false;
KtClassOrObject classOrObject = ((KtLightClassForExplicitDeclaration) aClass).getKotlinOrigin();
if (!(aClass instanceof KtLightClassForSourceDeclaration)) return false;
KtClassOrObject classOrObject = ((KtLightClassForSourceDeclaration) aClass).getKotlinOrigin();
if (classOrObject instanceof KtObjectDeclaration) {
return !((KtObjectDeclaration) classOrObject).isObjectLiteral();
@@ -148,8 +148,8 @@ public class MoveKotlinNestedClassesDialog extends RefactoringDialog {
chooser.showDialog();
PsiClass aClass = chooser.getSelected();
if (aClass instanceof KtLightClassForExplicitDeclaration) {
targetClass = ((KtLightClassForExplicitDeclaration) aClass).getKotlinOrigin();
if (aClass instanceof KtLightClassForSourceDeclaration) {
targetClass = ((KtLightClassForSourceDeclaration) aClass).getKotlinOrigin();
targetClassChooser.setText(aClass.getQualifiedName());
}
}
@@ -166,8 +166,8 @@ public class MoveKotlinNestedClassesDialog extends RefactoringDialog {
PsiClass aClass = JavaPsiFacade
.getInstance(myProject)
.findClass(targetClassChooser.getText(), GlobalSearchScope.projectScope(myProject));
targetClass = aClass instanceof KtLightClassForExplicitDeclaration
? ((KtLightClassForExplicitDeclaration) aClass).getKotlinOrigin()
targetClass = aClass instanceof KtLightClassForSourceDeclaration
? ((KtLightClassForSourceDeclaration) aClass).getKotlinOrigin()
: null;
validateButtons();
}
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiElement
import com.intellij.refactoring.rename.naming.AutomaticRenamer
import com.intellij.refactoring.rename.naming.AutomaticTestRenamerFactory
import com.intellij.usageView.UsageInfo
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.findFacadeClass
import org.jetbrains.kotlin.asJava.toLightClass
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.psi.KtFile
class KotlinAutomaticTestRenamerFactory : AutomaticTestRenamerFactory() {
private fun getPsiClass(element: PsiElement): PsiClass? {
return when (element) {
is KtLightClassForExplicitDeclaration -> element
is KtLightClassForSourceDeclaration -> element
is KtClassOrObject -> element.toLightClass()
is KtFile -> element.findFacadeClass()
else -> null
@@ -24,7 +24,7 @@ import com.intellij.refactoring.listeners.RefactoringElementListener
import com.intellij.refactoring.rename.RenamePsiElementProcessor
import com.intellij.usageView.UsageInfo
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -112,7 +112,7 @@ class RenameKotlinClassProcessor : RenameKotlinPsiProcessor() {
private fun getClassOrObject(element: PsiElement?): PsiElement? = when (element) {
is KtLightClass ->
when (element) {
is KtLightClassForExplicitDeclaration -> element.kotlinOrigin
is KtLightClassForSourceDeclaration -> element.kotlinOrigin
is KtLightClassForFacade -> element
else -> throw AssertionError("Should not be suggested to rename element of type " + element.javaClass + " " + element)
}
@@ -48,7 +48,7 @@ import kotlin.jvm.functions.Function1;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration;
import org.jetbrains.kotlin.asJava.elements.KtLightMethod;
import org.jetbrains.kotlin.idea.MainFunctionDetector;
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils;
@@ -389,7 +389,7 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
private String noFunctionFoundMessage(@NotNull PsiClass psiClass) {
//noinspection ConstantConditions
FqName classFqName = new FqName(psiClass.getQualifiedName());
if (psiClass instanceof KtLightClassForExplicitDeclaration) {
if (psiClass instanceof KtLightClassForSourceDeclaration) {
return String.format("Function 'main' not found in class '%s'", classFqName);
}
return String.format("Top-level function 'main' not found in package '%s'", classFqName.parent());
@@ -27,7 +27,7 @@ import com.intellij.testIntegration.JavaTestFinder
import com.intellij.testIntegration.TestFinderHelper
import com.intellij.util.CommonProcessors
import com.intellij.util.containers.HashSet
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.findFacadeClass
import org.jetbrains.kotlin.asJava.toLightClass
@@ -72,7 +72,7 @@ class KotlinTestFinder : JavaTestFinder() {
if (eachClass is KtLightClassForFacade) {
eachClass.files.mapTo(classesWithWeights) { Pair.create(it, candidateNameWithWeight.second) }
}
else if (eachClass.isPhysical || eachClass is KtLightClassForExplicitDeclaration) {
else if (eachClass.isPhysical || eachClass is KtLightClassForSourceDeclaration) {
classesWithWeights.add(Pair.create(eachClass, candidateNameWithWeight.second))
}
}
@@ -101,7 +101,7 @@ class KotlinTestFinder : JavaTestFinder() {
if (!pattern.matcher(candidateName).matches()) continue
for (candidateClass in cache.getClassesByName(candidateName, scope)) {
if (!(frameworks.isTestClass(candidateClass) || frameworks.isPotentialTestClass(candidateClass))) continue
if (!candidateClass.isPhysical && candidateClass !is KtLightClassForExplicitDeclaration) continue
if (!candidateClass.isPhysical && candidateClass !is KtLightClassForSourceDeclaration) continue
processor.process(Pair.create(candidateClass, TestFinderHelper.calcTestNameProximity(klassName, candidateName)))
}
}
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.asJava
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.impl.ResolveScopeManager
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.idea.caches.resolve.KtLightClassForDecompiledDeclaration
import org.jetbrains.kotlin.idea.test.JdkAndMockLibraryProjectDescriptor
@@ -56,7 +56,7 @@ class LightClassesClasspathSortingTest : KotlinCodeInsightTestCase() {
assertNotNull(psiClass, "Can't find class for $fqName")
psiClass!!
assert(psiClass is KtLightClassForExplicitDeclaration || psiClass is KtLightClassForFacade) { "Should be an explicit light class, but was $fqName ${psiClass.javaClass}" }
assert(psiClass is KtLightClassForSourceDeclaration || psiClass is KtLightClassForFacade) { "Should be an explicit light class, but was $fqName ${psiClass.javaClass}" }
assert(psiClass !is KtLightClassForDecompiledDeclaration) { "Should not be decompiled light class: $fqName ${psiClass.javaClass}" }
}
@@ -21,7 +21,7 @@ import com.intellij.testFramework.LightProjectDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.asJava.classes.KtLightClass;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForExplicitDeclaration;
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration;
import org.jetbrains.kotlin.idea.caches.resolve.KtLightClassForDecompiledDeclaration;
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase;
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor;
@@ -41,7 +41,7 @@ public class LightClassEqualsTest extends KotlinLightCodeInsightFixtureTestCase
PsiClass theClass = myFixture.getJavaFacade().findClass("A");
assertNotNull(theClass);
assertInstanceOf(theClass, KtLightClassForExplicitDeclaration.class);
assertInstanceOf(theClass, KtLightClassForSourceDeclaration.class);
doTestEquals(((KtLightClass) theClass).getKotlinOrigin());
}