[FIR] Introduce FirAnnotatedDeclaration
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* 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.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
* This file was generated automatically
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirAnnotatedDeclaration : FirDeclaration, FirAnnotationContainer {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
override val origin: FirDeclarationOrigin
|
||||
override val attributes: FirDeclarationAttributes
|
||||
override val annotations: List<FirAnnotationCall>
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnnotatedDeclaration(this, data)
|
||||
|
||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||
|
||||
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirAnnotatedDeclaration
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
@@ -21,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirAnnotationContainer, FirTypeParameterRefsOwner {
|
||||
interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirTypeParameterRefsOwner {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> : FirDeclaration, FirStatement, FirSymbolOwner<F> {
|
||||
interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> : FirAnnotatedDeclaration, FirStatement, FirSymbolOwner<F> {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
@@ -18,13 +17,13 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirFile : FirPureAbstractElement(), FirAnnotationContainer, FirDeclaration {
|
||||
abstract class FirFile : FirPureAbstractElement(), FirAnnotatedDeclaration {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val session: FirSession
|
||||
abstract override val resolvePhase: FirResolvePhase
|
||||
abstract override val origin: FirDeclarationOrigin
|
||||
abstract override val attributes: FirDeclarationAttributes
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract val imports: List<FirImport>
|
||||
abstract val declarations: List<FirDeclaration>
|
||||
abstract val name: String
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.FirTargetElement
|
||||
@@ -22,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirAnnotationContainer, FirTypeParameterRefsOwner, FirStatement {
|
||||
interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirTypeParameterRefsOwner, FirStatement {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
@@ -16,7 +15,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirMemberDeclaration : FirDeclaration, FirAnnotationContainer {
|
||||
interface FirMemberDeclaration : FirAnnotatedDeclaration {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
@@ -22,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirDeclaration, FirSymbolOwner<FirTypeParameter>, FirAnnotationContainer {
|
||||
abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirAnnotatedDeclaration, FirSymbolOwner<FirTypeParameter> {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val session: FirSession
|
||||
abstract override val resolvePhase: FirResolvePhase
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
@@ -17,7 +16,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
interface FirTypedDeclaration : FirDeclaration, FirAnnotationContainer {
|
||||
interface FirTypedDeclaration : FirAnnotatedDeclaration {
|
||||
override val source: FirSourceElement?
|
||||
override val session: FirSession
|
||||
override val resolvePhase: FirResolvePhase
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCallableDeclaration<F>, FirDeclaration, FirStatement {
|
||||
abstract class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCallableDeclaration<F>, FirAnnotatedDeclaration, FirStatement {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val session: FirSession
|
||||
abstract override val resolvePhase: FirResolvePhase
|
||||
|
||||
+2
-2
@@ -29,10 +29,10 @@ import org.jetbrains.kotlin.name.FqName
|
||||
@FirBuilderDsl
|
||||
class FirFileBuilder : FirAnnotationContainerBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
lateinit var session: FirSession
|
||||
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
|
||||
lateinit var origin: FirDeclarationOrigin
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
val imports: MutableList<FirImport> = mutableListOf()
|
||||
val declarations: MutableList<FirDeclaration> = mutableListOf()
|
||||
lateinit var name: String
|
||||
@@ -41,10 +41,10 @@ class FirFileBuilder : FirAnnotationContainerBuilder {
|
||||
override fun build(): FirFile {
|
||||
return FirFileImpl(
|
||||
source,
|
||||
annotations,
|
||||
session,
|
||||
resolvePhase,
|
||||
origin,
|
||||
annotations,
|
||||
imports,
|
||||
declarations,
|
||||
name,
|
||||
|
||||
@@ -24,10 +24,10 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
internal class FirFileImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val session: FirSession,
|
||||
override var resolvePhase: FirResolvePhase,
|
||||
override val origin: FirDeclarationOrigin,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val imports: MutableList<FirImport>,
|
||||
override val declarations: MutableList<FirDeclaration>,
|
||||
override val name: String,
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirLabel
|
||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
@@ -17,7 +16,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirLoop : FirPureAbstractElement(), FirStatement, FirTargetElement, FirAnnotationContainer {
|
||||
abstract class FirLoop : FirPureAbstractElement(), FirStatement, FirTargetElement {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract val block: FirBlock
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
@@ -191,6 +192,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(declaration, data)
|
||||
}
|
||||
|
||||
open fun transformAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformElement(annotatedDeclaration, data)
|
||||
}
|
||||
|
||||
open fun transformAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformElement(anonymousInitializer, data)
|
||||
}
|
||||
@@ -667,6 +672,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformDeclaration(declaration, data)
|
||||
}
|
||||
|
||||
final override fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformAnnotatedDeclaration(annotatedDeclaration, data)
|
||||
}
|
||||
|
||||
final override fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformAnonymousInitializer(anonymousInitializer, data)
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
@@ -161,6 +162,8 @@ abstract class FirVisitor<out R, in D> {
|
||||
|
||||
open fun visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, data)
|
||||
|
||||
open fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): R = visitElement(annotatedDeclaration, data)
|
||||
|
||||
open fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: D): R = visitElement(anonymousInitializer, data)
|
||||
|
||||
open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): R = visitElement(typedDeclaration, data)
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
@@ -189,6 +190,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(declaration)
|
||||
}
|
||||
|
||||
open fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration) {
|
||||
visitElement(annotatedDeclaration)
|
||||
}
|
||||
|
||||
open fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer) {
|
||||
visitElement(anonymousInitializer)
|
||||
}
|
||||
@@ -665,6 +670,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitDeclaration(declaration)
|
||||
}
|
||||
|
||||
final override fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: Nothing?) {
|
||||
visitAnnotatedDeclaration(annotatedDeclaration)
|
||||
}
|
||||
|
||||
final override fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: Nothing?) {
|
||||
visitAnonymousInitializer(anonymousInitializer)
|
||||
}
|
||||
|
||||
+10
-9
@@ -26,42 +26,43 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val statement = element("Statement", Expression, annotationContainer)
|
||||
val expression = element("Expression", Expression, statement)
|
||||
val declaration = element("Declaration", Declaration)
|
||||
val annotatedDeclaration = element("AnnotatedDeclaration", Declaration, declaration, annotationContainer)
|
||||
val anonymousInitializer = element("AnonymousInitializer", Declaration, declaration, symbolOwner)
|
||||
val typedDeclaration = element("TypedDeclaration", Declaration, declaration, annotationContainer)
|
||||
val typedDeclaration = element("TypedDeclaration", Declaration, annotatedDeclaration)
|
||||
val callableDeclaration = element("CallableDeclaration", Declaration, typedDeclaration, symbolOwner)
|
||||
val typeParameterRef = element("TypeParameterRef", Declaration)
|
||||
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, declaration, symbolOwner, annotationContainer)
|
||||
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, annotatedDeclaration, symbolOwner)
|
||||
val typeParameterRefsOwner = element("TypeParameterRefsOwner", Declaration)
|
||||
val typeParametersOwner = element("TypeParametersOwner", Declaration, typeParameterRefsOwner)
|
||||
val memberDeclaration = element("MemberDeclaration", Declaration, declaration, annotationContainer)
|
||||
val memberDeclaration = element("MemberDeclaration", Declaration, annotatedDeclaration)
|
||||
val callableMemberDeclaration = element("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration)
|
||||
|
||||
val variable = element("Variable", Declaration, callableDeclaration, declaration, statement)
|
||||
val variable = element("Variable", Declaration, callableDeclaration, annotatedDeclaration, statement)
|
||||
val valueParameter = element("ValueParameter", Declaration, variable)
|
||||
val property = element("Property", Declaration, variable, typeParametersOwner, callableMemberDeclaration)
|
||||
val field = element("Field", Declaration, variable, typeParametersOwner, callableMemberDeclaration)
|
||||
val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration)
|
||||
|
||||
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner)
|
||||
val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer, typeParameterRefsOwner)
|
||||
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, annotatedDeclaration, statement, symbolOwner)
|
||||
val klass = element("Class", Declaration, classLikeDeclaration, statement, typeParameterRefsOwner)
|
||||
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParameterRefsOwner, klass)
|
||||
val sealedClass = element("SealedClass", Declaration, regularClass)
|
||||
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
|
||||
|
||||
val function = element("Function", Declaration, callableDeclaration, targetElement, annotationContainer, typeParameterRefsOwner, statement)
|
||||
val function = element("Function", Declaration, callableDeclaration, targetElement, typeParameterRefsOwner, statement)
|
||||
|
||||
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
|
||||
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
|
||||
val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner, typeParametersOwner)
|
||||
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
|
||||
val file = element("File", Declaration, annotationContainer, declaration)
|
||||
val file = element("File", Declaration, annotatedDeclaration)
|
||||
|
||||
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression, typeParametersOwner)
|
||||
val anonymousObject = element("AnonymousObject", Declaration, klass, expression)
|
||||
|
||||
val diagnosticHolder = element("DiagnosticHolder", Diagnostics)
|
||||
|
||||
val loop = element("Loop", Expression, statement, targetElement, annotationContainer)
|
||||
val loop = element("Loop", Expression, statement, targetElement)
|
||||
val errorLoop = element("ErrorLoop", Expression, loop, diagnosticHolder)
|
||||
val doWhileLoop = element("DoWhileLoop", Expression, loop)
|
||||
val whileLoop = element("WhileLoop", Expression, loop)
|
||||
|
||||
Reference in New Issue
Block a user