From d3dd6e3b962d21f6d3cfe9bb4a1b65d310ab1ec1 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 28 Dec 2020 17:42:54 +0100 Subject: [PATCH] FIR IDE: delegate light classes is valid to corresponding symbol validity check --- .../idea/asJava/classes/FirLightAnnotationClassSymbol.kt | 4 ++++ .../idea/asJava/classes/FirLightAnonymousClassForSymbol.kt | 3 +++ .../kotlin/idea/asJava/classes/FirLightClassForEnumEntry.kt | 3 +++ .../kotlin/idea/asJava/classes/FirLightClassForSymbol.kt | 3 +++ .../idea/asJava/classes/FirLightInterfaceClassSymbol.kt | 3 +++ .../classes/FirLightInterfaceOrAnnotationClassSymbol.kt | 3 +++ .../org/jetbrains/kotlin/idea/asJava/fields/FirLightField.kt | 1 + .../kotlin/idea/asJava/fields/FirLightFieldEnumEntry.kt | 3 +++ .../kotlin/idea/asJava/fields/FirLightFieldForObjectSymbol.kt | 3 +++ .../idea/asJava/fields/FirLightFieldForPropertySymbol.kt | 3 +++ .../idea/asJava/methods/FirLightAccessorMethodForSymbol.kt | 3 +++ .../idea/asJava/methods/FirLightConstructorForSymbol.kt | 3 +++ .../jetbrains/kotlin/idea/asJava/methods/FirLightMethod.kt | 1 + .../kotlin/idea/asJava/methods/FirLightMethodForSymbol.kt | 3 +++ .../idea/asJava/methods/FirLightSimpleMethodForSymbol.kt | 3 +++ .../idea/asJava/parameters/FirLightParameterForReceiver.kt | 3 +++ .../idea/asJava/parameters/FirLightParameterForSymbol.kt | 3 +++ .../asJava/parameters/FirLightSetterParameterForSymbol.kt | 3 +++ .../kotlin/idea/asJava/parameters/FirLightTypeParameter.kt | 3 +++ 19 files changed, 54 insertions(+) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnnotationClassSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnnotationClassSymbol.kt index d0e8e85dcb2..aa36e2b1cbd 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnnotationClassSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnnotationClassSymbol.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.idea.asJava.FirLightClassForClassOrObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol @@ -62,5 +63,8 @@ internal class FirLightAnnotationClassSymbol( override fun hashCode(): Int = classOrObjectSymbol.hashCode() + + override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() + override fun copy(): FirLightClassForClassOrObjectSymbol = FirLightAnnotationClassSymbol(classOrObjectSymbol, manager) } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnonymousClassForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnonymousClassForSymbol.kt index 06b0995479b..a5445aba0bc 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnonymousClassForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightAnonymousClassForSymbol.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.idea.asJava.FirLightClassForSymbol import org.jetbrains.kotlin.idea.asJava.FirLightField import org.jetbrains.kotlin.idea.asJava.hasJvmFieldAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtAnonymousObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind @@ -139,6 +140,8 @@ internal class FirLightAnonymousClassForSymbol( override fun copy() = FirLightAnonymousClassForSymbol(anonymousObjectSymbol, manager) + override fun isValid(): Boolean = super.isValid() && anonymousObjectSymbol.isValid() + override fun toString() = "${this::class.java.simpleName}:${kotlinOrigin?.getDebugText()}" } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForEnumEntry.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForEnumEntry.kt index 7167ccd449f..a0681cf643b 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForEnumEntry.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForEnumEntry.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.idea.asJava.FirLightClassModifierList import org.jetbrains.kotlin.idea.asJava.FirLightPsiJavaCodeReferenceElementWithNoReference import org.jetbrains.kotlin.idea.asJava.classes.createMethods import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind import org.jetbrains.kotlin.psi.KtClassOrObject @@ -134,4 +135,6 @@ internal class FirLightClassForEnumEntry( } override fun getOwnInnerClasses(): MutableList = mutableListOf() + + override fun isValid(): Boolean = super.isValid() && enumEntrySymbol.isValid() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt index 2897ca862ee..61ac005aa08 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightClassForSymbol.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.idea.asJava.classes.* import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.* import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility @@ -218,4 +219,6 @@ internal class FirLightClassForSymbol( override fun copy(): FirLightClassForSymbol = FirLightClassForSymbol(classOrObjectSymbol, manager) + + override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceClassSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceClassSymbol.kt index 8835222c934..f18ae1eca6f 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceClassSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceClassSymbol.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.idea.asJava.FirLightClassForClassOrObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol @@ -66,4 +67,6 @@ internal class FirLightInterfaceClassSymbol( } override fun getExtendsList(): PsiReferenceList? = _extendsList + + override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceOrAnnotationClassSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceOrAnnotationClassSymbol.kt index 71b174a480c..41506aab5dd 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceOrAnnotationClassSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/classes/FirLightInterfaceOrAnnotationClassSymbol.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.asJava.classes import com.intellij.psi.* import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.idea.asJava.* +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind @@ -49,4 +50,6 @@ internal abstract class FirLightInterfaceOrAnnotationClassSymbol( override fun isInterface(): Boolean = true override fun isEnum(): Boolean = false + + override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightField.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightField.kt index bfd07121be4..5603b18d99d 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightField.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightField.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.idea.KotlinLanguage +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.psi.KtNamedDeclaration import javax.swing.Icon diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldEnumEntry.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldEnumEntry.kt index 4465f9f9594..28182753b7a 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldEnumEntry.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldEnumEntry.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.asJava.classes.* import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.idea.asJava.* +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol import org.jetbrains.kotlin.idea.util.ifTrue import org.jetbrains.kotlin.psi.KtEnumEntry @@ -79,6 +80,8 @@ internal class FirLightFieldForEnumEntry( override fun getNameIdentifier(): PsiIdentifier = _identifier + override fun isValid(): Boolean = super.isValid() && enumEntrySymbol.isValid() + override fun equals(other: Any?): Boolean = other is FirLightFieldForEnumEntry && diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForObjectSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForObjectSymbol.kt index c34f14f1fbe..ebfe160de6c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForObjectSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForObjectSymbol.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.psi.KtDeclaration @@ -60,4 +61,6 @@ internal class FirLightFieldForObjectSymbol( objectSymbol == other.objectSymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && objectSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForPropertySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForPropertySymbol.kt index 2b495a14985..1de38967fbf 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForPropertySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/fields/FirLightFieldForPropertySymbol.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtKotlinPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue @@ -113,4 +114,6 @@ internal class FirLightFieldForPropertySymbol( propertySymbol == other.propertySymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && propertySymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightAccessorMethodForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightAccessorMethodForSymbol.kt index 21165b55980..e4d5c0804f9 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightAccessorMethodForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightAccessorMethodForSymbol.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.idea.asJava.parameters.FirLightSetterParameterForSymbol +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.* import org.jetbrains.kotlin.idea.util.ifTrue import org.jetbrains.kotlin.load.java.JvmAbi.getterName @@ -186,4 +187,6 @@ internal class FirLightAccessorMethodForSymbol( } override fun getParameterList(): PsiParameterList = _parametersList + + override fun isValid(): Boolean = super.isValid() && propertyAccessorSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightConstructorForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightConstructorForSymbol.kt index ec4c7c6abb0..c08798015bf 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightConstructorForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightConstructorForSymbol.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.asJava import com.intellij.psi.* import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.lazyPub +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol internal class FirLightConstructorForSymbol( @@ -60,4 +61,6 @@ internal class FirLightConstructorForSymbol( constructorSymbol == other.constructorSymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && constructorSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethod.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethod.kt index 17391c0524a..75a3ff71375 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethod.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethod.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotatedSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethodForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethodForSymbol.kt index f3ff13fd4af..12878baecd9 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethodForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightMethodForSymbol.kt @@ -10,6 +10,7 @@ import com.intellij.psi.impl.light.LightParameterListBuilder import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionLikeSymbol import org.jetbrains.kotlin.psi.KtDeclaration import java.util.* @@ -60,4 +61,6 @@ internal abstract class FirLightMethodForSymbol( override fun getParameterList(): PsiParameterList = _parametersList override val kotlinOrigin: KtDeclaration? = functionSymbol.psi as? KtDeclaration + + override fun isValid(): Boolean = super.isValid() && functionSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightSimpleMethodForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightSimpleMethodForSymbol.kt index 52240f81aa3..bee094300dc 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightSimpleMethodForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/methods/FirLightSimpleMethodForSymbol.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.idea.asJava.elements.FirLightTypeParameterListForSymbol +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.idea.frontend.api.types.isUnit import org.jetbrains.kotlin.idea.util.ifTrue @@ -137,4 +138,6 @@ internal class FirLightSimpleMethodForSymbol( this === other || (other is FirLightSimpleMethodForSymbol && functionSymbol == other.functionSymbol) override fun hashCode(): Int = functionSymbol.hashCode() + + override fun isValid(): Boolean = super.isValid() && functionSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForReceiver.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForReceiver.kt index c643dc1d151..007a9a3f16d 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForReceiver.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForReceiver.kt @@ -12,6 +12,7 @@ import com.intellij.psi.PsiType import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations @@ -83,6 +84,8 @@ internal class FirLightParameterForReceiver private constructor( receiverTypeAndAnnotations == other.receiverTypeAndAnnotations) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && context.isValid() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForSymbol.kt index 816679c1ad1..323acc7f68a 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightParameterForSymbol.kt @@ -9,6 +9,7 @@ import com.intellij.psi.PsiAnnotation import com.intellij.psi.PsiModifierList import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtParameterSymbol import org.jetbrains.kotlin.idea.util.ifTrue @@ -46,4 +47,6 @@ internal class FirLightParameterForSymbol( (other is FirLightParameterForSymbol && parameterSymbol == other.parameterSymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && parameterSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightSetterParameterForSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightSetterParameterForSymbol.kt index 7a5971a6bdc..3cffbb852df 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightSetterParameterForSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightSetterParameterForSymbol.kt @@ -10,6 +10,7 @@ import com.intellij.psi.PsiModifierList import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.idea.asJava.* +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol @@ -48,4 +49,6 @@ internal class FirLightSetterParameterForSymbol( (other is FirLightSetterParameterForSymbol && parameterSymbol == other.parameterSymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() + + override fun isValid(): Boolean = super.isValid() && parameterSymbol.isValid() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightTypeParameter.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightTypeParameter.kt index cd9334b9ffe..0ef661106ee 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightTypeParameter.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/asJava/parameters/FirLightTypeParameter.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.asJava.basicIsEquivalentTo import org.jetbrains.kotlin.idea.asJava.invalidAccess import org.jetbrains.kotlin.idea.asJava.mapSupertype +import org.jetbrains.kotlin.idea.frontend.api.isValid import org.jetbrains.kotlin.idea.frontend.api.symbols.KtTypeParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.types.KtClassType import org.jetbrains.kotlin.psi.KtTypeParameter @@ -162,4 +163,6 @@ internal class FirLightTypeParameter( override fun getContainingFile(): PsiFile = parent.containingFile override fun getTextOffset(): Int = kotlinOrigin?.startOffset ?: super.getTextOffset() override fun getStartOffsetInParent(): Int = kotlinOrigin?.startOffsetInParent ?: super.getStartOffsetInParent() + + override fun isValid(): Boolean = super.isValid() && typeParameterSymbol.isValid() }