[FIR] Add FirErrorProperty node
This commit is contained in:
@@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.declarations
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||||
|
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder, FirTypeParametersOwner {
|
||||||
|
abstract override val source: FirSourceElement?
|
||||||
|
abstract override val session: FirSession
|
||||||
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
|
abstract override val origin: FirDeclarationOrigin
|
||||||
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val name: Name
|
||||||
|
abstract override val initializer: FirExpression?
|
||||||
|
abstract override val delegate: FirExpression?
|
||||||
|
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirErrorProperty>?
|
||||||
|
abstract override val isVar: Boolean
|
||||||
|
abstract override val isVal: Boolean
|
||||||
|
abstract override val getter: FirPropertyAccessor?
|
||||||
|
abstract override val setter: FirPropertyAccessor?
|
||||||
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
|
abstract override val diagnostic: ConeDiagnostic
|
||||||
|
abstract override val typeParameters: List<FirTypeParameter>
|
||||||
|
abstract override val symbol: FirErrorPropertySymbol
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorProperty(this, data)
|
||||||
|
|
||||||
|
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
|
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
|
|
||||||
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
}
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.declarations.builder
|
||||||
|
|
||||||
|
import kotlin.contracts.*
|
||||||
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||||
|
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorPropertyImpl
|
||||||
|
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
@FirBuilderDsl
|
||||||
|
class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
|
||||||
|
override var source: FirSourceElement? = null
|
||||||
|
lateinit var session: FirSession
|
||||||
|
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
|
||||||
|
lateinit var origin: FirDeclarationOrigin
|
||||||
|
lateinit var name: Name
|
||||||
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
|
lateinit var diagnostic: ConeDiagnostic
|
||||||
|
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||||
|
lateinit var symbol: FirErrorPropertySymbol
|
||||||
|
|
||||||
|
override fun build(): FirErrorProperty {
|
||||||
|
return FirErrorPropertyImpl(
|
||||||
|
source,
|
||||||
|
session,
|
||||||
|
resolvePhase,
|
||||||
|
origin,
|
||||||
|
name,
|
||||||
|
annotations,
|
||||||
|
diagnostic,
|
||||||
|
typeParameters,
|
||||||
|
symbol,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalContracts::class)
|
||||||
|
inline fun buildErrorProperty(init: FirErrorPropertyBuilder.() -> Unit): FirErrorProperty {
|
||||||
|
contract {
|
||||||
|
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||||
|
}
|
||||||
|
return FirErrorPropertyBuilder().apply(init).build()
|
||||||
|
}
|
||||||
+115
@@ -0,0 +1,115 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.declarations.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
|
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
internal class FirErrorPropertyImpl(
|
||||||
|
override val source: FirSourceElement?,
|
||||||
|
override val session: FirSession,
|
||||||
|
override var resolvePhase: FirResolvePhase,
|
||||||
|
override val origin: FirDeclarationOrigin,
|
||||||
|
override val name: Name,
|
||||||
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
|
override val diagnostic: ConeDiagnostic,
|
||||||
|
override val typeParameters: MutableList<FirTypeParameter>,
|
||||||
|
override val symbol: FirErrorPropertySymbol,
|
||||||
|
) : FirErrorProperty() {
|
||||||
|
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
|
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, diagnostic)
|
||||||
|
override val receiverTypeRef: FirTypeRef? get() = null
|
||||||
|
override val initializer: FirExpression? get() = null
|
||||||
|
override val delegate: FirExpression? get() = null
|
||||||
|
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirErrorProperty>? get() = null
|
||||||
|
override val isVar: Boolean get() = false
|
||||||
|
override val isVal: Boolean get() = true
|
||||||
|
override val getter: FirPropertyAccessor? get() = null
|
||||||
|
override val setter: FirPropertyAccessor? get() = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
delegateFieldSymbol?.bind(this)
|
||||||
|
symbol.bind(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
|
returnTypeRef.accept(visitor, data)
|
||||||
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
typeParameters.forEach { it.accept(visitor, data) }
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
transformReturnTypeRef(transformer, data)
|
||||||
|
transformOtherChildren(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
annotations.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
transformAnnotations(transformer, data)
|
||||||
|
typeParameters.transformInplace(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
|
resolvePhase = newResolvePhase
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
|
}
|
||||||
@@ -80,6 +80,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||||
@@ -433,6 +434,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformElement(errorFunction, data)
|
return transformElement(errorFunction, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun transformErrorProperty(errorProperty: FirErrorProperty, data: D): CompositeTransformResult<FirStatement> {
|
||||||
|
return transformElement(errorProperty, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun transformQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
open fun transformQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformElement(qualifiedAccessExpression, data)
|
return transformElement(qualifiedAccessExpression, data)
|
||||||
}
|
}
|
||||||
@@ -917,6 +922,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformErrorFunction(errorFunction, data)
|
return transformErrorFunction(errorFunction, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitErrorProperty(errorProperty: FirErrorProperty, data: D): CompositeTransformResult<FirStatement> {
|
||||||
|
return transformErrorProperty(errorProperty, data)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformQualifiedAccessExpression(qualifiedAccessExpression, data)
|
return transformQualifiedAccessExpression(qualifiedAccessExpression, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||||
@@ -283,6 +284,8 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitErrorFunction(errorFunction: FirErrorFunction, data: D): R = visitElement(errorFunction, data)
|
open fun visitErrorFunction(errorFunction: FirErrorFunction, data: D): R = visitElement(errorFunction, data)
|
||||||
|
|
||||||
|
open fun visitErrorProperty(errorProperty: FirErrorProperty, data: D): R = visitElement(errorProperty, data)
|
||||||
|
|
||||||
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): R = visitElement(qualifiedAccessExpression, data)
|
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): R = visitElement(qualifiedAccessExpression, data)
|
||||||
|
|
||||||
open fun visitFunctionCall(functionCall: FirFunctionCall, data: D): R = visitElement(functionCall, data)
|
open fun visitFunctionCall(functionCall: FirFunctionCall, data: D): R = visitElement(functionCall, data)
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||||
@@ -431,6 +432,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(errorFunction)
|
visitElement(errorFunction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun visitErrorProperty(errorProperty: FirErrorProperty) {
|
||||||
|
visitElement(errorProperty)
|
||||||
|
}
|
||||||
|
|
||||||
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression) {
|
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression) {
|
||||||
visitElement(qualifiedAccessExpression)
|
visitElement(qualifiedAccessExpression)
|
||||||
}
|
}
|
||||||
@@ -915,6 +920,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitErrorFunction(errorFunction)
|
visitErrorFunction(errorFunction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitErrorProperty(errorProperty: FirErrorProperty, data: Nothing?) {
|
||||||
|
visitErrorProperty(errorProperty)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Nothing?) {
|
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Nothing?) {
|
||||||
visitQualifiedAccessExpression(qualifiedAccessExpression)
|
visitQualifiedAccessExpression(qualifiedAccessExpression)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.symbols.impl
|
package org.jetbrains.kotlin.fir.symbols.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
import org.jetbrains.kotlin.fir.declarations.FirField
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||||
|
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||||
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
open class FirVariableSymbol<D : FirVariable<D>>(override val callableId: CallableId) : FirCallableSymbol<D>() {
|
open class FirVariableSymbol<D : FirVariable<D>>(override val callableId: CallableId) : FirCallableSymbol<D>() {
|
||||||
@@ -35,3 +39,11 @@ class FirDelegateFieldSymbol<D : FirVariable<D>>(callableId: CallableId) : FirVa
|
|||||||
}
|
}
|
||||||
|
|
||||||
class FirFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirField>(callableId)
|
class FirFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirField>(callableId)
|
||||||
|
|
||||||
|
class FirErrorPropertySymbol(
|
||||||
|
val diagnostic: ConeDiagnostic
|
||||||
|
) : FirVariableSymbol<FirErrorProperty>(CallableId(FqName.ROOT, null, NAME)) {
|
||||||
|
companion object {
|
||||||
|
val NAME: Name = Name.special("<error property>")
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -95,6 +95,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
|
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
|
||||||
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
|
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
|
||||||
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder, typeParametersOwner)
|
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder, typeParametersOwner)
|
||||||
|
val errorProperty = element("ErrorProperty", Declaration, variable, diagnosticHolder, typeParametersOwner)
|
||||||
val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess)
|
val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess)
|
||||||
val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call)
|
val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call)
|
||||||
val delegatedConstructorCall = element("DelegatedConstructorCall", Expression, resolvable, call)
|
val delegatedConstructorCall = element("DelegatedConstructorCall", Expression, resolvable, call)
|
||||||
|
|||||||
+28
-11
@@ -146,6 +146,18 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val errorTypeRefImpl = impl(errorTypeRef) {
|
||||||
|
default("type", "ConeClassErrorType(diagnostic.reason)")
|
||||||
|
default("delegatedTypeRef") {
|
||||||
|
value = "null"
|
||||||
|
withGetter = true
|
||||||
|
}
|
||||||
|
default("annotations", "mutableListOf()")
|
||||||
|
defaultFalse("isSuspend")
|
||||||
|
useTypes(coneClassErrorTypeType)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
impl(property) {
|
impl(property) {
|
||||||
default("isVal") {
|
default("isVal") {
|
||||||
value = "!isVar"
|
value = "!isVar"
|
||||||
@@ -156,6 +168,22 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
useTypes(backingFieldSymbolType, delegateFieldSymbolType)
|
useTypes(backingFieldSymbolType, delegateFieldSymbolType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl(errorProperty) {
|
||||||
|
defaultTrue("isVal", withGetter = true)
|
||||||
|
defaultFalse("isVar", withGetter = true)
|
||||||
|
|
||||||
|
defaultNull(
|
||||||
|
"receiverTypeRef",
|
||||||
|
"initializer",
|
||||||
|
"delegate",
|
||||||
|
"delegateFieldSymbol",
|
||||||
|
"getter", "setter",
|
||||||
|
withGetter = true
|
||||||
|
)
|
||||||
|
default("returnTypeRef", "FirErrorTypeRefImpl(null, diagnostic)")
|
||||||
|
useTypes(errorTypeRefImpl)
|
||||||
|
}
|
||||||
|
|
||||||
impl(field) {
|
impl(field) {
|
||||||
default("isVal") {
|
default("isVal") {
|
||||||
value = "!isVar"
|
value = "!isVar"
|
||||||
@@ -354,17 +382,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
|
|
||||||
impl(resolvedTypeRef)
|
impl(resolvedTypeRef)
|
||||||
|
|
||||||
val errorTypeRefImpl = impl(errorTypeRef) {
|
|
||||||
default("type", "ConeClassErrorType(diagnostic.reason)")
|
|
||||||
default("delegatedTypeRef") {
|
|
||||||
value = "null"
|
|
||||||
withGetter = true
|
|
||||||
}
|
|
||||||
default("annotations", "mutableListOf()")
|
|
||||||
defaultFalse("isSuspend")
|
|
||||||
useTypes(coneClassErrorTypeType)
|
|
||||||
}
|
|
||||||
|
|
||||||
impl(errorExpression) {
|
impl(errorExpression) {
|
||||||
defaultEmptyList("annotations")
|
defaultEmptyList("annotations")
|
||||||
default("typeRef", "FirErrorTypeRefImpl(source, ConeStubDiagnostic(diagnostic))")
|
default("typeRef", "FirErrorTypeRefImpl(source, ConeStubDiagnostic(diagnostic))")
|
||||||
|
|||||||
+5
@@ -368,6 +368,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
needTransformOtherChildren()
|
needTransformOtherChildren()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
errorProperty.configure {
|
||||||
|
parentArg(variable, "F", errorProperty)
|
||||||
|
+symbol("FirErrorPropertySymbol")
|
||||||
|
}
|
||||||
|
|
||||||
enumEntry.configure {
|
enumEntry.configure {
|
||||||
parentArg(variable, "F", enumEntry)
|
parentArg(variable, "F", enumEntry)
|
||||||
parentArg(callableMemberDeclaration, "F", enumEntry)
|
parentArg(callableMemberDeclaration, "F", enumEntry)
|
||||||
|
|||||||
Reference in New Issue
Block a user