FIR: allow diagnostic collection on default property accessors

This commit is contained in:
Mikhail Glukhikh
2021-10-06 16:00:35 +03:00
committed by teamcityserver
parent 39fe457f91
commit 2a9a1dbb86
15 changed files with 37 additions and 142 deletions
@@ -314,6 +314,7 @@ class FirFakeSourceElement(psi: PsiElement, override val kind: FirFakeSourceElem
}
fun FirSourceElement.fakeElement(newKind: FirFakeSourceElementKind): FirSourceElement {
if (kind == newKind) return this
return when (this) {
is FirLightSourceElement -> FirLightSourceElement(lighterASTNode, startOffset, endOffset, treeStructure, newKind)
is FirPsiSourceElement -> FirFakeSourceElement(psi, newKind)
@@ -8,9 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildDefaultSetterValueParameter
@@ -126,7 +124,7 @@ class FirDefaultPropertySetter(
FirImplicitUnitTypeRef(source),
valueParameters = mutableListOf(
buildDefaultSetterValueParameter builder@{
this@builder.source = source
this@builder.source = source?.fakeElement(FirFakeSourceElementKind.DefaultAccessor)
this@builder.moduleData = moduleData
this@builder.origin = origin
this@builder.returnTypeRef = propertyTypeRef