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