Optimization: make FirWrappedArgumentExpression an abstract class
This commit is contained in:
+6
-1
@@ -5,9 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirLambdaArgumentExpression : FirWrappedArgumentExpression {
|
||||
abstract class FirLambdaArgumentExpression(
|
||||
session: FirSession,
|
||||
psi: PsiElement?
|
||||
) : FirWrappedArgumentExpression(session, psi) {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitLambdaArgumentExpression(this, data)
|
||||
}
|
||||
+7
-2
@@ -5,11 +5,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
interface FirNamedArgumentExpression : FirWrappedArgumentExpression {
|
||||
val name: Name
|
||||
abstract class FirNamedArgumentExpression(
|
||||
session: FirSession,
|
||||
psi: PsiElement?
|
||||
) : FirWrappedArgumentExpression(session, psi) {
|
||||
abstract val name: Name
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitNamedArgumentExpression(this, data)
|
||||
|
||||
+6
-1
@@ -5,9 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirSpreadArgumentExpression : FirWrappedArgumentExpression {
|
||||
abstract class FirSpreadArgumentExpression(
|
||||
session: FirSession,
|
||||
psi: PsiElement?
|
||||
) : FirWrappedArgumentExpression(session, psi) {
|
||||
override val isSpread: Boolean
|
||||
get() = true
|
||||
|
||||
|
||||
+10
-4
@@ -5,13 +5,19 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirAbstractStatement
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirWrappedArgumentExpression : FirExpression {
|
||||
val expression: FirExpression
|
||||
abstract class FirWrappedArgumentExpression(
|
||||
session: FirSession,
|
||||
psi: PsiElement?
|
||||
) : FirAbstractStatement(session, psi), FirExpression {
|
||||
abstract val expression: FirExpression
|
||||
|
||||
val isSpread: Boolean
|
||||
open val isSpread: Boolean
|
||||
get() = false
|
||||
|
||||
override val typeRef: FirTypeRef
|
||||
@@ -26,6 +32,6 @@ interface FirWrappedArgumentExpression : FirExpression {
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
expression.accept(visitor, data)
|
||||
super.acceptChildren(visitor, data)
|
||||
super<FirExpression>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -17,9 +17,9 @@ class FirLambdaArgumentExpressionImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
override var expression: FirExpression
|
||||
) : FirLambdaArgumentExpression, FirAbstractStatement(session, psi) {
|
||||
) : FirLambdaArgumentExpression(session, psi) {
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
expression = expression.transformSingle(transformer, data)
|
||||
return super<FirAbstractStatement>.transformChildren(transformer, data)
|
||||
return super.transformChildren(transformer, data)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -20,9 +20,9 @@ class FirNamedArgumentExpressionImpl(
|
||||
override val name: Name,
|
||||
override val isSpread: Boolean,
|
||||
override var expression: FirExpression
|
||||
) : FirNamedArgumentExpression, FirAbstractStatement(session, psi) {
|
||||
) : FirNamedArgumentExpression(session, psi) {
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
expression = expression.transformSingle(transformer, data)
|
||||
return super<FirAbstractStatement>.transformChildren(transformer, data)
|
||||
return super.transformChildren(transformer, data)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -17,9 +17,9 @@ class FirSpreadArgumentExpressionImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
override var expression: FirExpression
|
||||
) : FirSpreadArgumentExpression, FirAbstractStatement(session, psi) {
|
||||
) : FirSpreadArgumentExpression(session, psi) {
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
expression = expression.transformSingle(transformer, data)
|
||||
return super<FirAbstractStatement>.transformChildren(transformer, data)
|
||||
return super.transformChildren(transformer, data)
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.visitors.generator
|
||||
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
|
||||
@@ -88,7 +89,7 @@ class DataCollector {
|
||||
return
|
||||
}
|
||||
val classNameWithParameters = NameWithTypeParameters(className, klass.typeParameterList?.text ?: "")
|
||||
if (klass.isInterface()) {
|
||||
if (klass.isInterface() || (klass.hasModifier(KtTokens.ABSTRACT_KEYWORD) && "Abstract" !in (klass.name ?: ""))) {
|
||||
packagePerClass[classNameWithParameters] = file.packageFqName
|
||||
val isBaseTT = klass.annotationEntries.any {
|
||||
it.shortName?.asString() == BASE_TRANSFORMED_TYPE_ANNOTATION_NAME
|
||||
|
||||
+8
@@ -64,6 +64,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformFunction(propertyAccessor, data)
|
||||
}
|
||||
|
||||
open fun transformDefaultPropertyAccessor(defaultPropertyAccessor: FirDefaultPropertyAccessor, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformPropertyAccessor(defaultPropertyAccessor, data)
|
||||
}
|
||||
|
||||
open fun transformErrorDeclaration(errorDeclaration: FirErrorDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformDeclaration(errorDeclaration, data)
|
||||
}
|
||||
@@ -500,6 +504,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformDeclarationWithBody(declarationWithBody, data)
|
||||
}
|
||||
|
||||
final override fun visitDefaultPropertyAccessor(defaultPropertyAccessor: FirDefaultPropertyAccessor, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformDefaultPropertyAccessor(defaultPropertyAccessor, data)
|
||||
}
|
||||
|
||||
final override fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformDelegatedConstructorCall(delegatedConstructorCall, data)
|
||||
}
|
||||
|
||||
@@ -64,6 +64,10 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitFunction(propertyAccessor, data)
|
||||
}
|
||||
|
||||
open fun visitDefaultPropertyAccessor(defaultPropertyAccessor: FirDefaultPropertyAccessor, data: D): R {
|
||||
return visitPropertyAccessor(defaultPropertyAccessor, data)
|
||||
}
|
||||
|
||||
open fun visitErrorDeclaration(errorDeclaration: FirErrorDeclaration, data: D): R {
|
||||
return visitDeclaration(errorDeclaration, data)
|
||||
}
|
||||
|
||||
+8
@@ -64,6 +64,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitFunction(propertyAccessor, null)
|
||||
}
|
||||
|
||||
open fun visitDefaultPropertyAccessor(defaultPropertyAccessor: FirDefaultPropertyAccessor) {
|
||||
visitPropertyAccessor(defaultPropertyAccessor, null)
|
||||
}
|
||||
|
||||
open fun visitErrorDeclaration(errorDeclaration: FirErrorDeclaration) {
|
||||
visitDeclaration(errorDeclaration, null)
|
||||
}
|
||||
@@ -500,6 +504,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitDeclarationWithBody(declarationWithBody)
|
||||
}
|
||||
|
||||
final override fun visitDefaultPropertyAccessor(defaultPropertyAccessor: FirDefaultPropertyAccessor, data: Nothing?) {
|
||||
visitDefaultPropertyAccessor(defaultPropertyAccessor)
|
||||
}
|
||||
|
||||
final override fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: Nothing?) {
|
||||
visitDelegatedConstructorCall(delegatedConstructorCall)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user