diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index aa3a67223e3..24631cca367 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -1705,7 +1705,7 @@ open class RawFirBuilder( private fun KtDeclarationWithInitializer.toInitializerExpression() = runIf(hasInitializer()) { - buildOrLazyExpression(initializer?.toFirSourceElement()) { + buildOrLazyExpression(null) { initializer.toFirExpression("Should have initializer") } } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtBackingField.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtBackingField.java index 5ca3da2e18e..d8362725767 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtBackingField.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtBackingField.java @@ -62,11 +62,19 @@ public class KtBackingField extends KtDeclarationStub @Nullable @Override public KtExpression getInitializer() { + KotlinBackingFieldStub stub = getStub(); + if (stub != null && !stub.hasInitializer()) { + return null; + } return PsiTreeUtil.getNextSiblingOfType(getEqualsToken(), KtExpression.class); } @Override public boolean hasInitializer() { + KotlinBackingFieldStub stub = getStub(); + if (stub != null) { + return stub.hasInitializer(); + } return getInitializer() != null; } diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt index 2ed683ac757..403be28635f 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt @@ -23,7 +23,7 @@ object KotlinStubVersions { // Though only kotlin declarations (no code in the bodies) are stubbed, please do increase this version // if you are not 100% sure it can be avoided. // Increasing this version will lead to reindexing of all kotlin source files on the first IDE startup with the new version. - const val SOURCE_STUB_VERSION = 145 + const val SOURCE_STUB_VERSION = 146 // Binary stub version should be increased if stub format (org.jetbrains.kotlin.psi.stubs.impl) is changed // or changes are made to the core stub building code (org.jetbrains.kotlin.idea.decompiler.stubBuilder). diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt index 8f286e03832..725bdc8986e 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/StubInterfaces.kt @@ -127,7 +127,9 @@ interface KotlinPropertyAccessorStub : StubElement { fun hasBlockBody(): Boolean } -interface KotlinBackingFieldStub : StubElement +interface KotlinBackingFieldStub : StubElement { + fun hasInitializer(): Boolean +} interface KotlinPropertyStub : KotlinCallableStubBase { fun isVar(): Boolean diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtBackingFieldElementType.java b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtBackingFieldElementType.java index 8c274d0f4e7..7716a79c96e 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtBackingFieldElementType.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/elements/KtBackingFieldElementType.java @@ -34,15 +34,18 @@ public class KtBackingFieldElementType extends KtStubElementType implements KotlinBackingFieldStub { - public KotlinBackingFieldStubImpl(StubElement parent) { + private final boolean hasInitializer; + public KotlinBackingFieldStubImpl(StubElement parent, boolean hasInitializer) { super(parent, KtStubElementTypes.BACKING_FIELD); + this.hasInitializer = hasInitializer; + } + + @Override + public boolean hasInitializer() { + return hasInitializer; } }