Reformat and cleanup in asJava/elements

This commit is contained in:
Nikolay Krasko
2019-06-28 14:53:07 +03:00
parent 353ca9752f
commit 9fd46c105d
13 changed files with 98 additions and 83 deletions
@@ -78,8 +78,7 @@ open class FakeFileForLightClass(
override fun setPackageName(packageName: String) { override fun setPackageName(packageName: String) {
if (lightClass() is KtLightClassForFacade) { if (lightClass() is KtLightClassForFacade) {
ktFile.packageDirective?.fqName = FqName(packageName) ktFile.packageDirective?.fqName = FqName(packageName)
} } else {
else {
super.setPackageName(packageName) super.setPackageName(packageName)
} }
} }
@@ -26,7 +26,12 @@ import org.jetbrains.kotlin.idea.KotlinLanguage
class KotlinLightTypeParameterListBuilder(private val owner: PsiTypeParameterListOwner) : class KotlinLightTypeParameterListBuilder(private val owner: PsiTypeParameterListOwner) :
LightTypeParameterListBuilder(owner.manager, KotlinLanguage.INSTANCE) { LightTypeParameterListBuilder(owner.manager, KotlinLanguage.INSTANCE) {
override fun processDeclarations(processor: PsiScopeProcessor, state: ResolveState, lastParent: PsiElement?, place: PsiElement): Boolean { override fun processDeclarations(
processor: PsiScopeProcessor,
state: ResolveState,
lastParent: PsiElement?,
place: PsiElement
): Boolean {
return typeParameters.all { processor.execute(it, state) } return typeParameters.all { processor.execute(it, state) }
} }
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.asJava.classes.cannotModify
import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.psi.KtEnumEntry import org.jetbrains.kotlin.psi.KtEnumEntry
import org.jetbrains.kotlin.psi.KtNamedDeclaration import org.jetbrains.kotlin.psi.KtNamedDeclaration
import java.lang.UnsupportedOperationException
sealed class KtLightFieldImpl<D : PsiField>( sealed class KtLightFieldImpl<D : PsiField>(
override val lightMemberOrigin: LightMemberOrigin?, override val lightMemberOrigin: LightMemberOrigin?,
@@ -84,8 +83,7 @@ sealed class KtLightFieldImpl<D : PsiField>(
val kotlinEnumEntry = (lightMemberOrigin as? LightMemberOriginForDeclaration)?.originalElement as? KtEnumEntry val kotlinEnumEntry = (lightMemberOrigin as? LightMemberOriginForDeclaration)?.originalElement as? KtEnumEntry
if (kotlinEnumEntry != null && kotlinEnumEntry.declarations.isNotEmpty()) { if (kotlinEnumEntry != null && kotlinEnumEntry.declarations.isNotEmpty()) {
KtLightClassForEnumEntry(kotlinEnumEntry, clsDelegate) KtLightClassForEnumEntry(kotlinEnumEntry, clsDelegate)
} } else null
else null
} }
// NOTE: we don't use "delegation by" because the compiler would generate method calls to ALL of PsiEnumConstant members, // NOTE: we don't use "delegation by" because the compiler would generate method calls to ALL of PsiEnumConstant members,
@@ -102,7 +100,12 @@ sealed class KtLightFieldImpl<D : PsiField>(
override fun resolveMethodGenerics() = clsDelegate.resolveMethodGenerics() override fun resolveMethodGenerics() = clsDelegate.resolveMethodGenerics()
} }
class KtLightFieldForSourceDeclaration(origin: LightMemberOrigin?, computeDelegate: () -> PsiField, containingClass: KtLightClass, dummyDelegate: PsiField?) : class KtLightFieldForSourceDeclaration(
origin: LightMemberOrigin?,
computeDelegate: () -> PsiField,
containingClass: KtLightClass,
dummyDelegate: PsiField?
) :
KtLightFieldImpl<PsiField>(origin, computeDelegate, containingClass, dummyDelegate), KtLightFieldImpl<PsiField>(origin, computeDelegate, containingClass, dummyDelegate),
KtLightFieldForSourceDeclarationSupport KtLightFieldForSourceDeclarationSupport
@@ -97,7 +97,8 @@ private class KtLightMemberModifierList(
name == PsiModifier.ABSTRACT && isImplementationInInterface() -> false name == PsiModifier.ABSTRACT && isImplementationInInterface() -> false
// pretend this method behaves like a default method // pretend this method behaves like a default method
name == PsiModifier.DEFAULT && isImplementationInInterface() -> true name == PsiModifier.DEFAULT && isImplementationInInterface() -> true
name == PsiModifier.FINAL && ((owner.containingClass as? KtLightClassForSourceDeclaration)?.isPossiblyAffectedByAllOpen() ?: false) -> name == PsiModifier.FINAL && ((owner.containingClass as? KtLightClassForSourceDeclaration)?.isPossiblyAffectedByAllOpen()
?: false) ->
clsDelegate.hasModifierProperty(name) clsDelegate.hasModifierProperty(name)
dummyDelegate != null -> { dummyDelegate != null -> {
when { when {
@@ -115,8 +116,8 @@ private class KtLightMemberModifierList(
private fun isMethodOverride() = owner is KtLightMethod && owner.kotlinOrigin?.hasModifier(KtTokens.OVERRIDE_KEYWORD) ?: false private fun isMethodOverride() = owner is KtLightMethod && owner.kotlinOrigin?.hasModifier(KtTokens.OVERRIDE_KEYWORD) ?: false
private fun isImplementationInInterface() private fun isImplementationInInterface() =
= owner.containingClass.isInterface && owner is KtLightMethod && owner.kotlinOrigin?.hasBody() ?: false owner.containingClass.isInterface && owner is KtLightMethod && owner.kotlinOrigin?.hasBody() ?: false
override fun copy() = KtLightMemberModifierList(owner, dummyDelegate) override fun copy() = KtLightMemberModifierList(owner, dummyDelegate)
} }
@@ -84,8 +84,7 @@ open class KtLightMethodImpl protected constructor(
override fun accept(visitor: PsiElementVisitor) { override fun accept(visitor: PsiElementVisitor) {
if (visitor is JavaElementVisitor) { if (visitor is JavaElementVisitor) {
visitor.visitMethod(this) visitor.visitMethod(this)
} } else {
else {
visitor.visitElement(this) visitor.visitElement(this)
} }
} }
@@ -108,8 +107,7 @@ open class KtLightMethodImpl protected constructor(
val nameExpression = jvmNameAnnotation?.findAttributeValue("name")?.unwrapped as? KtStringTemplateExpression val nameExpression = jvmNameAnnotation?.findAttributeValue("name")?.unwrapped as? KtStringTemplateExpression
if (nameExpression != null) { if (nameExpression != null) {
nameExpression.replace(KtPsiFactory(this).createStringTemplate(name)) nameExpression.replace(KtPsiFactory(this).createStringTemplate(name))
} } else {
else {
val toRename = kotlinOrigin as? PsiNamedElement ?: cannotModify() val toRename = kotlinOrigin as? PsiNamedElement ?: cannotModify()
toRename.setName(newNameForOrigin) toRename.setName(newNameForOrigin)
} }
@@ -151,7 +149,12 @@ open class KtLightMethodImpl protected constructor(
return Factory.create(clsDelegate, lightMemberOrigin?.copy(), containingClass) return Factory.create(clsDelegate, lightMemberOrigin?.copy(), containingClass)
} }
override fun processDeclarations(processor: PsiScopeProcessor, state: ResolveState, lastParent: PsiElement?, place: PsiElement): Boolean { override fun processDeclarations(
processor: PsiScopeProcessor,
state: ResolveState,
lastParent: PsiElement?,
place: PsiElement
): Boolean {
return typeParameters.all { processor.execute(it, state) } return typeParameters.all { processor.execute(it, state) }
} }
@@ -170,7 +173,8 @@ open class KtLightMethodImpl protected constructor(
this.lightMemberOrigin == other.lightMemberOrigin && this.lightMemberOrigin == other.lightMemberOrigin &&
this.memberIndex == other.memberIndex) this.memberIndex == other.memberIndex)
override fun hashCode(): Int = ((getName().hashCode() * 31 + (lightMemberOrigin?.hashCode() ?: 0)) * 31 + containingClass.hashCode()) * 31 + (memberIndex?.hashCode() ?: 0) override fun hashCode(): Int = ((name.hashCode() * 31 + (lightMemberOrigin?.hashCode()
?: 0)) * 31 + containingClass.hashCode()) * 31 + (memberIndex?.hashCode() ?: 0)
override fun getDefaultValue() = (clsDelegate as? PsiAnnotationMethod)?.defaultValue override fun getDefaultValue() = (clsDelegate as? PsiAnnotationMethod)?.defaultValue
@@ -182,8 +186,7 @@ open class KtLightMethodImpl protected constructor(
calculatingReturnType.set(true) calculatingReturnType.set(true)
try { try {
return returnTypeElement?.type return returnTypeElement?.type
} } finally {
finally {
calculatingReturnType.set(false) calculatingReturnType.set(false)
} }
} }
@@ -249,7 +252,8 @@ open class KtLightMethodImpl protected constructor(
override fun getHierarchicalMethodSignature() = clsDelegate.hierarchicalMethodSignature override fun getHierarchicalMethodSignature() = clsDelegate.hierarchicalMethodSignature
override fun findSuperMethodSignaturesIncludingStatic(checkAccess: Boolean) = clsDelegate.findSuperMethodSignaturesIncludingStatic(checkAccess) override fun findSuperMethodSignaturesIncludingStatic(checkAccess: Boolean) =
clsDelegate.findSuperMethodSignaturesIncludingStatic(checkAccess)
override fun getBody() = null override fun getBody() = null
@@ -106,8 +106,7 @@ class KtLightParameter(
if (another is KtLightParameter && kotlinOrigin != null) { if (another is KtLightParameter && kotlinOrigin != null) {
kotlinOrigin == another.kotlinOrigin && clsDelegate == another.clsDelegate kotlinOrigin == another.kotlinOrigin && clsDelegate == another.clsDelegate
} } else {
else {
null null
} }
}) })
@@ -20,16 +20,13 @@ import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.PsiJavaCodeReferenceElement import com.intellij.psi.PsiJavaCodeReferenceElement
import com.intellij.psi.PsiReferenceList import com.intellij.psi.PsiReferenceList
import com.intellij.psi.PsiReferenceList.Role
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.addSuperTypeEntry import org.jetbrains.kotlin.asJava.classes.addSuperTypeEntry
import org.jetbrains.kotlin.asJava.classes.findEntry import org.jetbrains.kotlin.asJava.classes.findEntry
import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.KtSuperTypeList
import org.jetbrains.kotlin.psi.KtSuperTypeListEntry
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
class KtLightPsiReferenceList( class KtLightPsiReferenceList(
override val clsDelegate: PsiReferenceList, override val clsDelegate: PsiReferenceList,
@@ -39,7 +39,8 @@ public class KtLightTypeParameter
public KtLightTypeParameter( public KtLightTypeParameter(
@NotNull PsiTypeParameterListOwner owner, @NotNull PsiTypeParameterListOwner owner,
int index, int index,
@NotNull String name) { @NotNull String name
) {
super(owner.getManager(), KotlinLanguage.INSTANCE); super(owner.getManager(), KotlinLanguage.INSTANCE);
this.owner = owner; this.owner = owner;
this.index = index; this.index = index;
@@ -32,7 +32,13 @@ public class LightParameter extends LightVariableBuilder implements PsiParameter
this(name, type, declarationScope, language, type instanceof PsiEllipsisType); this(name, type, declarationScope, language, type instanceof PsiEllipsisType);
} }
public LightParameter(@NotNull String name, @NotNull PsiType type, @NotNull KtLightMethod declarationScope, Language language, boolean isVarArgs) { public LightParameter(
@NotNull String name,
@NotNull PsiType type,
@NotNull KtLightMethod declarationScope,
Language language,
boolean isVarArgs
) {
super(declarationScope.getManager(), name, type, language); super(declarationScope.getManager(), name, type, language);
myName = name; myName = name;
myDeclarationScope = declarationScope; myDeclarationScope = declarationScope;
@@ -141,7 +141,7 @@ class KtLightAnnotationForSourceEntry(
override fun getParameterList(): PsiAnnotationParameterList = ktLightAnnotationParameterList override fun getParameterList(): PsiAnnotationParameterList = ktLightAnnotationParameterList
inner class KtLightAnnotationParameterList() : KtLightElementBase(this), inner class KtLightAnnotationParameterList : KtLightElementBase(this),
PsiAnnotationParameterList { PsiAnnotationParameterList {
override val kotlinOrigin: KtElement? get() = null override val kotlinOrigin: KtElement? get() = null