New J2K: Replace backAnnotator with PsiOwner
This commit is contained in:
committed by
Ilya Kirillov
parent
c948e2d086
commit
3030a03584
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.j2k.tree.JKElement
|
|||||||
data class ConversionContext(
|
data class ConversionContext(
|
||||||
val symbolProvider: JKSymbolProvider,
|
val symbolProvider: JKSymbolProvider,
|
||||||
val converter: NewJavaToKotlinConverter,
|
val converter: NewJavaToKotlinConverter,
|
||||||
val backAnnotator: (JKElement) -> PsiElement?,
|
|
||||||
val inConversionContext: (PsiElement) -> Boolean
|
val inConversionContext: (PsiElement) -> Boolean
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
|
|
||||||
private val modifierMapper = ModifierMapper()
|
private val modifierMapper = ModifierMapper()
|
||||||
|
|
||||||
val backAnnotation = mutableMapOf<JKElement, PsiElement>()//TODO preserve consistency
|
|
||||||
|
|
||||||
private inner class ExpressionTreeMapper {
|
private inner class ExpressionTreeMapper {
|
||||||
fun PsiExpression?.toJK(): JKExpression {
|
fun PsiExpression?.toJK(): JKExpression {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
@@ -74,7 +72,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
throw RuntimeException("Not supported: ${this::class}")
|
throw RuntimeException("Not supported: ${this::class}")
|
||||||
}
|
}
|
||||||
}.also {
|
}.also {
|
||||||
if (this != null) backAnnotation[it] = this
|
if (this != null) (it as PsiOwner).psi = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,7 +189,9 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
JKJavaNewEmptyArrayImpl(
|
JKJavaNewEmptyArrayImpl(
|
||||||
dimensions.map { it?.toJK() ?: JKStubExpressionImpl() },
|
dimensions.map { it?.toJK() ?: JKStubExpressionImpl() },
|
||||||
JKTypeElementImpl(generateSequence(type?.toJK(symbolProvider)) { it.safeAs<JKJavaArrayType>()?.type }.last())
|
JKTypeElementImpl(generateSequence(type?.toJK(symbolProvider)) { it.safeAs<JKJavaArrayType>()?.type }.last())
|
||||||
)
|
).also {
|
||||||
|
it.psi = this
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val constructedClass = classOrAnonymousClassReference?.resolve()
|
val constructedClass = classOrAnonymousClassReference?.resolve()
|
||||||
@@ -227,7 +227,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
|
|
||||||
fun PsiTypeElement.toJK(): JKTypeElement {
|
fun PsiTypeElement.toJK(): JKTypeElement {
|
||||||
return JKTypeElementImpl(type.toJK(symbolProvider)).also {
|
return JKTypeElementImpl(type.toJK(symbolProvider)).also {
|
||||||
backAnnotation[it] = this
|
(it as PsiOwner).psi = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -253,7 +253,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
jkClassImpl.declarationList = children.mapNotNull {
|
jkClassImpl.declarationList = children.mapNotNull {
|
||||||
ElementVisitor().apply { it.accept(this) }.resultElement as? JKDeclaration
|
ElementVisitor().apply { it.accept(this) }.resultElement as? JKDeclaration
|
||||||
}
|
}
|
||||||
backAnnotation[jkClassImpl] = this
|
jkClassImpl.psi = this
|
||||||
symbolProvider.provideUniverseSymbol(this, jkClassImpl)
|
symbolProvider.provideUniverseSymbol(this, jkClassImpl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -266,7 +266,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
with(expressionTreeMapper) { initializer.toJK() }
|
with(expressionTreeMapper) { initializer.toJK() }
|
||||||
).also {
|
).also {
|
||||||
symbolProvider.provideUniverseSymbol(this, it)
|
symbolProvider.provideUniverseSymbol(this, it)
|
||||||
backAnnotation[it] = this
|
it.psi = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,9 +282,8 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
parameterList.parameters.map { it.toJK() },
|
parameterList.parameters.map { it.toJK() },
|
||||||
body?.toJK() ?: JKBodyStub
|
body?.toJK() ?: JKBodyStub
|
||||||
).also {
|
).also {
|
||||||
backAnnotation[it] = this
|
it.psi = this
|
||||||
symbolProvider.provideUniverseSymbol(this, it)
|
symbolProvider.provideUniverseSymbol(this, it)
|
||||||
backAnnotation[it] = this
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,7 +298,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
JKNameIdentifierImpl(name!!),
|
JKNameIdentifierImpl(name!!),
|
||||||
with(modifierMapper) { modifierList.toJK() }).also {
|
with(modifierMapper) { modifierList.toJK() }).also {
|
||||||
symbolProvider.provideUniverseSymbol(this, it)
|
symbolProvider.provideUniverseSymbol(this, it)
|
||||||
backAnnotation[it] = this
|
it.psi = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,7 +316,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
with(expressionTreeMapper) { it.initializer.toJK() }
|
with(expressionTreeMapper) { it.initializer.toJK() }
|
||||||
).also { i ->
|
).also { i ->
|
||||||
symbolProvider.provideUniverseSymbol(it, i)
|
symbolProvider.provideUniverseSymbol(it, i)
|
||||||
backAnnotation[i] = it
|
i.psi = it
|
||||||
}
|
}
|
||||||
} else TODO()
|
} else TODO()
|
||||||
}
|
}
|
||||||
@@ -382,7 +381,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
}
|
}
|
||||||
else -> TODO("for ${this::class}")
|
else -> TODO("for ${this::class}")
|
||||||
}.also {
|
}.also {
|
||||||
if (this != null) backAnnotation[it] = this
|
if (this != null) (it as PsiOwner).psi = this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ class NewJavaToKotlinConverter(
|
|||||||
val context = ConversionContext(
|
val context = ConversionContext(
|
||||||
symbolProvider,
|
symbolProvider,
|
||||||
this,
|
this,
|
||||||
{ it: JKElement -> treeBuilder.backAnnotation[it] },
|
|
||||||
{ it: PsiElement -> it.containingFile in files }
|
{ it: PsiElement -> it.containingFile in files }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : R
|
|||||||
val alsoExpression = JKKtAlsoCallExpressionImpl(
|
val alsoExpression = JKKtAlsoCallExpressionImpl(
|
||||||
JKBlockStatementImpl(
|
JKBlockStatementImpl(
|
||||||
JKBlockImpl(listOf(JKKtAssignmentStatementImpl(element.field, JKStubExpressionImpl(), element.operator)))
|
JKBlockImpl(listOf(JKKtAssignmentStatementImpl(element.field, JKStubExpressionImpl(), element.operator)))
|
||||||
), context.symbolProvider.provideByFqName("kotlin/also", context.backAnnotator.invoke(element.parentOfType<JKClass>()!!)!!)
|
), context.symbolProvider.provideByFqName("kotlin/also", element.parentOfType<JKClass>()!!.psi!!)
|
||||||
).also {
|
).also {
|
||||||
it.statement.cast<JKBlockStatement>().block.statements.first().cast<JKKtAssignmentStatement>().expression =
|
it.statement.cast<JKBlockStatement>().block.statements.first().cast<JKKtAssignmentStatement>().expression =
|
||||||
JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it.parameter))
|
JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it.parameter))
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class BlockToRunConversion(private val context: ConversionContext) : RecursiveAp
|
|||||||
if (element.parent !is JKBlock) return recurse(element)
|
if (element.parent !is JKBlock) return recurse(element)
|
||||||
|
|
||||||
val parentDeclaration = element.parentOfType<JKDeclaration>() ?: return recurse(element)
|
val parentDeclaration = element.parentOfType<JKDeclaration>() ?: return recurse(element)
|
||||||
val psiContext = context.backAnnotator(parentDeclaration) ?: return recurse(element)
|
val psiContext = parentDeclaration.psi ?: return recurse(element)
|
||||||
|
|
||||||
val unitType =
|
val unitType =
|
||||||
context.symbolProvider.provideDirectSymbol(
|
context.symbolProvider.provideDirectSymbol(
|
||||||
|
|||||||
@@ -263,5 +263,5 @@ class ForConversion(private val context: ConversionContext) : RecursiveApplicabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
private inline fun <reified ElementType : PsiElement> JKElement.psi() =
|
private inline fun <reified ElementType : PsiElement> JKElement.psi() =
|
||||||
context.backAnnotator(this) as? ElementType
|
this.psi as? ElementType
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ import com.intellij.psi.PsiMethod
|
|||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.modality
|
import org.jetbrains.kotlin.j2k.tree.impl.modality
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
||||||
|
|
||||||
class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class ModalityConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
|
|
||||||
@@ -26,13 +27,13 @@ class ModalityConversion(private val context: ConversionContext) : RecursiveAppl
|
|||||||
if (klass.classKind != JKClass.ClassKind.CLASS) return
|
if (klass.classKind != JKClass.ClassKind.CLASS) return
|
||||||
if (klass.modifierList.modality != JKModalityModifier.Modality.OPEN) return
|
if (klass.modifierList.modality != JKModalityModifier.Modality.OPEN) return
|
||||||
if (context.converter.settings.openByDefault) return
|
if (context.converter.settings.openByDefault) return
|
||||||
if (!context.converter.converterServices.oldServices.referenceSearcher.hasInheritors(context.backAnnotator(klass) as PsiClass)) {
|
if (!context.converter.converterServices.oldServices.referenceSearcher.hasInheritors(klass.psi as PsiClass)) {
|
||||||
klass.modifierList.modality = JKModalityModifier.Modality.FINAL
|
klass.modifierList.modality = JKModalityModifier.Modality.FINAL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processMethod(method: JKJavaMethod) {
|
private fun processMethod(method: JKJavaMethod) {
|
||||||
if ((context.backAnnotator(method)!! as PsiMethod).findSuperMethods().isNotEmpty()) {
|
if ((method.psi!! as PsiMethod).findSuperMethods().isNotEmpty()) {
|
||||||
method.modifierList.modality = JKModalityModifier.Modality.OVERRIDE
|
method.modifierList.modality = JKModalityModifier.Modality.OVERRIDE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.j2k.ConversionContext
|
|||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKKtCallExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
|
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
// TODO: Full special methods conversion
|
// TODO: Full special methods conversion
|
||||||
@@ -31,7 +32,7 @@ class PrintlnConversion(private val context: ConversionContext) : RecursiveAppli
|
|||||||
if (selector.identifier.name != "println") return element
|
if (selector.identifier.name != "println") return element
|
||||||
|
|
||||||
val contextElement = element.parentOfType<JKClass>() ?: return element
|
val contextElement = element.parentOfType<JKClass>() ?: return element
|
||||||
val targetElements = multiResolveFqName(ClassId.fromString("kotlin/io/println"), context.backAnnotator(contextElement)!!)
|
val targetElements = multiResolveFqName(ClassId.fromString("kotlin/io/println"), contextElement.psi!!)
|
||||||
if (targetElements.isEmpty()) return element
|
if (targetElements.isEmpty()) return element
|
||||||
selector.invalidate()
|
selector.invalidate()
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class SwitchStatementConversion(private val context: ConversionContext) : Recurs
|
|||||||
is JKBreakStatement, is JKReturnStatement -> false
|
is JKBreakStatement, is JKReturnStatement -> false
|
||||||
is JKBlockStatement -> block.statements.fallsThrough()
|
is JKBlockStatement -> block.statements.fallsThrough()
|
||||||
is JKIfStatement, is JKJavaSwitchStatement, is JKKtWhenStatement ->
|
is JKIfStatement, is JKJavaSwitchStatement, is JKKtWhenStatement ->
|
||||||
context.backAnnotator(this)!!.canCompleteNormally()
|
this.psi!!.canCompleteNormally()
|
||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,10 @@ import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
|||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.j2k.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKClassTypeImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaVoidType
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
|
|
||||||
class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
|
|
||||||
@@ -59,7 +58,7 @@ class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicabl
|
|||||||
is JKJavaVoidType -> JKClassTypeImpl(
|
is JKJavaVoidType -> JKClassTypeImpl(
|
||||||
context.symbolProvider.provideByFqName(
|
context.symbolProvider.provideByFqName(
|
||||||
ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.unit.toSafe()),
|
ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.unit.toSafe()),
|
||||||
context.backAnnotator.invoke(element.parentOfType<JKClass>()!!)!!
|
element.parentOfType<JKClass>()!!.psi!!
|
||||||
),
|
),
|
||||||
nullability = Nullability.NotNull
|
nullability = Nullability.NotNull
|
||||||
)
|
)
|
||||||
@@ -87,9 +86,9 @@ class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicabl
|
|||||||
|
|
||||||
private fun calculateNullability(parent: JKElement?): Nullability {
|
private fun calculateNullability(parent: JKElement?): Nullability {
|
||||||
return when (parent) {
|
return when (parent) {
|
||||||
is JKJavaMethod -> typeFlavorCalculator.methodNullability(context.backAnnotator(parent) as PsiMethod)
|
is JKJavaMethod -> typeFlavorCalculator.methodNullability(parent.psi as PsiMethod)
|
||||||
is JKJavaField -> typeFlavorCalculator.variableNullability(context.backAnnotator(parent) as PsiVariable)
|
is JKJavaField -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
||||||
is JKLocalVariable -> typeFlavorCalculator.variableNullability(context.backAnnotator(parent) as PsiVariable)
|
is JKLocalVariable -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
||||||
else -> Nullability.Default
|
else -> Nullability.Default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.psi.PsiPolyVariantReference
|
import com.intellij.psi.PsiPolyVariantReference
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
import org.jetbrains.kotlin.j2k.tree.JKTreeElement
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.psi
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
||||||
import org.jetbrains.kotlin.psi.KtImportDirective
|
import org.jetbrains.kotlin.psi.KtImportDirective
|
||||||
@@ -19,7 +20,7 @@ import org.jetbrains.kotlin.resolve.ImportPath
|
|||||||
|
|
||||||
|
|
||||||
internal fun resolveFqName(classId: ClassId, contextElement: JKTreeElement, context: ConversionContext): PsiElement? {
|
internal fun resolveFqName(classId: ClassId, contextElement: JKTreeElement, context: ConversionContext): PsiElement? {
|
||||||
val element = context.backAnnotator(contextElement) ?: return null
|
val element = contextElement.psi ?: return null
|
||||||
return resolveFqName(classId, element)
|
return resolveFqName(classId, element)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
|
|
||||||
class JKJavaFieldImpl(modifierList: JKModifierList, type: JKTypeElement, name: JKNameIdentifier, initializer: JKExpression) : JKJavaField,
|
class JKJavaFieldImpl(modifierList: JKModifierList, type: JKTypeElement, name: JKNameIdentifier, initializer: JKExpression) : JKJavaField,
|
||||||
JKBranchElementBase() {
|
JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaField(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaField(this, data)
|
||||||
|
|
||||||
override var initializer: JKExpression by child(initializer)
|
override var initializer: JKExpression by child(initializer)
|
||||||
@@ -38,7 +38,7 @@ class JKJavaFieldImpl(modifierList: JKModifierList, type: JKTypeElement, name: J
|
|||||||
|
|
||||||
class JKJavaMethodImpl(
|
class JKJavaMethodImpl(
|
||||||
modifierList: JKModifierList, returnType: JKTypeElement, name: JKNameIdentifier, parameters: List<JKParameter>, block: JKBlock
|
modifierList: JKModifierList, returnType: JKTypeElement, name: JKNameIdentifier, parameters: List<JKParameter>, block: JKBlock
|
||||||
) : JKJavaMethod, JKBranchElementBase() {
|
) : JKJavaMethod, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaMethod(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaMethod(this, data)
|
||||||
|
|
||||||
override var modifierList: JKModifierList by child(modifierList)
|
override var modifierList: JKModifierList by child(modifierList)
|
||||||
@@ -52,7 +52,7 @@ class JKJavaMethodImpl(
|
|||||||
class JKJavaLiteralExpressionImpl(
|
class JKJavaLiteralExpressionImpl(
|
||||||
override val literal: String,
|
override val literal: String,
|
||||||
override val type: JKLiteralExpression.LiteralType
|
override val type: JKLiteralExpression.LiteralType
|
||||||
) : JKJavaLiteralExpression, JKElementBase() {
|
) : JKJavaLiteralExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaLiteralExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaLiteralExpression(this, data)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@@ -60,7 +60,7 @@ class JKJavaLiteralExpressionImpl(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : JKJavaModifier, JKElementBase() {
|
class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : JKJavaModifier, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaModifier(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaModifier(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,17 +173,18 @@ class JKJavaMethodCallExpressionImpl(
|
|||||||
override var identifier: JKMethodSymbol,
|
override var identifier: JKMethodSymbol,
|
||||||
arguments: JKExpressionList,
|
arguments: JKExpressionList,
|
||||||
typeArguments: List<JKTypeElement> = emptyList()
|
typeArguments: List<JKTypeElement> = emptyList()
|
||||||
) : JKJavaMethodCallExpression, JKBranchElementBase() {
|
) : JKJavaMethodCallExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaMethodCallExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaMethodCallExpression(this, data)
|
||||||
|
|
||||||
override val arguments: JKExpressionList by child(arguments)
|
override val arguments: JKExpressionList by child(arguments)
|
||||||
override var typeArguments: List<JKTypeElement> by children(typeArguments)
|
override var typeArguments: List<JKTypeElement> by children(typeArguments)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class JKJavaNewExpressionImpl(
|
class JKJavaNewExpressionImpl(
|
||||||
override val constructorSymbol: JKMethodSymbol,
|
override val constructorSymbol: JKMethodSymbol,
|
||||||
arguments: JKExpressionList
|
arguments: JKExpressionList
|
||||||
) : JKJavaNewExpression, JKBranchElementBase() {
|
) : JKJavaNewExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaNewExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaNewExpression(this, data)
|
||||||
|
|
||||||
override var arguments by child(arguments)
|
override var arguments by child(arguments)
|
||||||
@@ -191,9 +192,9 @@ class JKJavaNewExpressionImpl(
|
|||||||
|
|
||||||
class JKJavaDefaultNewExpressionImpl(
|
class JKJavaDefaultNewExpressionImpl(
|
||||||
override val classSymbol: JKClassSymbol
|
override val classSymbol: JKClassSymbol
|
||||||
) : JKJavaDefaultNewExpression, JKElementBase()
|
) : JKJavaDefaultNewExpression, JKElementBase(), PsiOwner by PsiOwnerImpl()
|
||||||
|
|
||||||
class JKJavaNewEmptyArrayImpl(initializer: List<JKExpression>, type: JKTypeElement) : JKJavaNewEmptyArray, JKBranchElementBase() {
|
class JKJavaNewEmptyArrayImpl(initializer: List<JKExpression>, type: JKTypeElement) : JKJavaNewEmptyArray, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val type by child(type)
|
override val type by child(type)
|
||||||
override var initializer by children(initializer)
|
override var initializer by children(initializer)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaNewEmptyArray(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaNewEmptyArray(this, data)
|
||||||
@@ -231,13 +232,13 @@ object JKJavaVoidType : JKType {
|
|||||||
class JKJavaArrayTypeImpl(override val type: JKType, override var nullability: Nullability = Nullability.Default) : JKJavaArrayType {
|
class JKJavaArrayTypeImpl(override val type: JKType, override var nullability: Nullability = Nullability.Default) : JKJavaArrayType {
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKReturnStatementImpl(expression: JKExpression) : JKBranchElementBase(), JKReturnStatement {
|
class JKReturnStatementImpl(expression: JKExpression) : JKBranchElementBase(), JKReturnStatement, PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitReturnStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitReturnStatement(this, data)
|
||||||
|
|
||||||
override val expression by child(expression)
|
override val expression by child(expression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaAssertStatementImpl(condition: JKExpression, description: JKExpression) : JKJavaAssertStatement, JKBranchElementBase() {
|
class JKJavaAssertStatementImpl(condition: JKExpression, description: JKExpression) : JKJavaAssertStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val description by child(description)
|
override val description by child(description)
|
||||||
override val condition by child(condition)
|
override val condition by child(condition)
|
||||||
|
|
||||||
@@ -245,7 +246,7 @@ class JKJavaAssertStatementImpl(condition: JKExpression, description: JKExpressi
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaForLoopStatementImpl(initializer: JKStatement, condition: JKExpression, updater: JKStatement, body: JKStatement) :
|
class JKJavaForLoopStatementImpl(initializer: JKStatement, condition: JKExpression, updater: JKStatement, body: JKStatement) :
|
||||||
JKJavaForLoopStatement, JKBranchElementBase() {
|
JKJavaForLoopStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var body by child(body)
|
override var body by child(body)
|
||||||
override var updater by child(updater)
|
override var updater by child(updater)
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
@@ -254,7 +255,7 @@ class JKJavaForLoopStatementImpl(initializer: JKStatement, condition: JKExpressi
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaForLoopStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaForLoopStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaInstanceOfExpressionImpl(expression: JKExpression, type: JKTypeElement) : JKJavaInstanceOfExpression, JKBranchElementBase() {
|
class JKJavaInstanceOfExpressionImpl(expression: JKExpression, type: JKTypeElement) : JKJavaInstanceOfExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var type by child(type)
|
override var type by child(type)
|
||||||
override var expression by child(expression)
|
override var expression by child(expression)
|
||||||
|
|
||||||
@@ -262,7 +263,7 @@ class JKJavaInstanceOfExpressionImpl(expression: JKExpression, type: JKTypeEleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaPolyadicExpressionImpl(operands: List<JKExpression>, override var tokens: List<JKOperator>) : JKJavaPolyadicExpression,
|
class JKJavaPolyadicExpressionImpl(operands: List<JKExpression>, override var tokens: List<JKOperator>) : JKJavaPolyadicExpression,
|
||||||
JKBranchElementBase() {
|
JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var operands by children(operands)
|
override var operands by children(operands)
|
||||||
|
|
||||||
override fun getTokenBeforeOperand(operand: JKExpression): JKOperator? {
|
override fun getTokenBeforeOperand(operand: JKExpression): JKOperator? {
|
||||||
@@ -277,7 +278,7 @@ class JKJavaAssignmentExpressionImpl(
|
|||||||
override var field: JKAssignableExpression,
|
override var field: JKAssignableExpression,
|
||||||
expression: JKExpression,
|
expression: JKExpression,
|
||||||
override var operator: JKOperator
|
override var operator: JKOperator
|
||||||
) : JKBranchElementBase(), JKJavaAssignmentExpression {
|
) : JKBranchElementBase(), JKJavaAssignmentExpression, PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaAssignmentExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaAssignmentExpression(this, data)
|
||||||
|
|
||||||
override var expression: JKExpression by child(expression)
|
override var expression: JKExpression by child(expression)
|
||||||
@@ -286,13 +287,13 @@ class JKJavaAssignmentExpressionImpl(
|
|||||||
class JKJavaSwitchStatementImpl(
|
class JKJavaSwitchStatementImpl(
|
||||||
expression: JKExpression,
|
expression: JKExpression,
|
||||||
cases: List<JKJavaSwitchCase>
|
cases: List<JKJavaSwitchCase>
|
||||||
) : JKJavaSwitchStatement, JKBranchElementBase() {
|
) : JKJavaSwitchStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var expression: JKExpression by child(expression)
|
override var expression: JKExpression by child(expression)
|
||||||
override var cases: List<JKJavaSwitchCase> by children(cases)
|
override var cases: List<JKJavaSwitchCase> by children(cases)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaSwitchStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaSwitchStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaDefaultSwitchCaseImpl(statements: List<JKStatement>) : JKJavaDefaultSwitchCase, JKBranchElementBase() {
|
class JKJavaDefaultSwitchCaseImpl(statements: List<JKStatement>) : JKJavaDefaultSwitchCase, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var statements: List<JKStatement> by children(statements)
|
override var statements: List<JKStatement> by children(statements)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaDefaultSwitchCase(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaDefaultSwitchCase(this, data)
|
||||||
}
|
}
|
||||||
@@ -300,7 +301,7 @@ class JKJavaDefaultSwitchCaseImpl(statements: List<JKStatement>) : JKJavaDefault
|
|||||||
class JKJavaLabelSwitchCaseImpl(
|
class JKJavaLabelSwitchCaseImpl(
|
||||||
label: JKExpression,
|
label: JKExpression,
|
||||||
statements: List<JKStatement>
|
statements: List<JKStatement>
|
||||||
) : JKJavaLabelSwitchCase, JKBranchElementBase() {
|
) : JKJavaLabelSwitchCase, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var statements: List<JKStatement> by children(statements)
|
override var statements: List<JKStatement> by children(statements)
|
||||||
override var label: JKExpression by child(label)
|
override var label: JKExpression by child(label)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaLabelSwitchCase(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaLabelSwitchCase(this, data)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.j2k.tree.impl
|
package org.jetbrains.kotlin.j2k.tree.impl
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.JKSymbolProvider
|
import org.jetbrains.kotlin.j2k.JKSymbolProvider
|
||||||
@@ -32,7 +33,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.psi.KtClass
|
import org.jetbrains.kotlin.psi.KtClass
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
|
|
||||||
class JKFileImpl : JKFile, JKBranchElementBase() {
|
class JKFileImpl : JKFile, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitFile(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitFile(this, data)
|
||||||
|
|
||||||
override var declarationList by children<JKDeclaration>()
|
override var declarationList by children<JKDeclaration>()
|
||||||
@@ -43,7 +44,7 @@ class JKClassImpl(
|
|||||||
name: JKNameIdentifier,
|
name: JKNameIdentifier,
|
||||||
inheritance: JKInheritanceInfo,
|
inheritance: JKInheritanceInfo,
|
||||||
override var classKind: JKClass.ClassKind
|
override var classKind: JKClass.ClassKind
|
||||||
) : JKClass, JKBranchElementBase() {
|
) : JKClass, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitClass(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitClass(this, data)
|
||||||
|
|
||||||
override var name by child(name)
|
override var name by child(name)
|
||||||
@@ -52,13 +53,13 @@ class JKClassImpl(
|
|||||||
override val inheritance by child(inheritance)
|
override val inheritance by child(inheritance)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKNameIdentifierImpl(override val value: String) : JKNameIdentifier, JKElementBase() {
|
class JKNameIdentifierImpl(override val value: String) : JKNameIdentifier, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitNameIdentifier(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitNameIdentifier(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKModifierListImpl(
|
class JKModifierListImpl(
|
||||||
modifiers: List<JKModifier> = emptyList()
|
modifiers: List<JKModifier> = emptyList()
|
||||||
) : JKModifierList, JKBranchElementBase() {
|
) : JKModifierList, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
constructor(vararg modifiers: JKModifier) : this(modifiers.asList())
|
constructor(vararg modifiers: JKModifier) : this(modifiers.asList())
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitModifierList(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitModifierList(this, data)
|
||||||
@@ -92,7 +93,7 @@ class JKParameterImpl(
|
|||||||
modifierList: JKModifierList,
|
modifierList: JKModifierList,
|
||||||
initializer: JKExpression = JKStubExpressionImpl()
|
initializer: JKExpression = JKStubExpressionImpl()
|
||||||
|
|
||||||
) : JKParameter, JKBranchElementBase() {
|
) : JKParameter, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitParameter(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitParameter(this, data)
|
||||||
|
|
||||||
override var modifierList by child(modifierList)
|
override var modifierList by child(modifierList)
|
||||||
@@ -101,7 +102,7 @@ class JKParameterImpl(
|
|||||||
override var type by child(type)
|
override var type by child(type)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKBlockImpl(statements: List<JKStatement> = emptyList()) : JKBlock, JKBranchElementBase() {
|
class JKBlockImpl(statements: List<JKStatement> = emptyList()) : JKBlock, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlock(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlock(this, data)
|
||||||
|
|
||||||
override var statements by children(statements)
|
override var statements by children(statements)
|
||||||
@@ -113,7 +114,7 @@ class JKBinaryExpressionImpl(
|
|||||||
right: JKExpression,
|
right: JKExpression,
|
||||||
override var operator: JKOperator
|
override var operator: JKOperator
|
||||||
) : JKBinaryExpression,
|
) : JKBinaryExpression,
|
||||||
JKBranchElementBase() {
|
JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBinaryExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBinaryExpression(this, data)
|
||||||
override var right by child(right)
|
override var right by child(right)
|
||||||
override var left by child(left)
|
override var left by child(left)
|
||||||
@@ -163,21 +164,20 @@ class JKBinaryExpressionImpl(
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class JKPrefixExpressionImpl(expression: JKExpression, override var operator: JKOperator) : JKPrefixExpression, JKBranchElementBase() {
|
class JKPrefixExpressionImpl(expression: JKExpression, override var operator: JKOperator) : JKPrefixExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitPrefixExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitPrefixExpression(this, data)
|
||||||
|
|
||||||
override var expression by child(expression)
|
override var expression by child(expression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKPostfixExpressionImpl(expression: JKExpression, override var operator: JKOperator) : JKPostfixExpression, JKBranchElementBase() {
|
class JKPostfixExpressionImpl(expression: JKExpression, override var operator: JKOperator) : JKPostfixExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitPostfixExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitPostfixExpression(this, data)
|
||||||
|
|
||||||
override var expression by child(expression)
|
override var expression by child(expression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKExpressionListImpl(expressions: List<JKExpression> = emptyList()) : JKExpressionList, JKBranchElementBase() {
|
class JKExpressionListImpl(expressions: List<JKExpression> = emptyList()) : JKExpressionList, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
constructor(vararg expresions: JKExpression) : this(expresions.asList())
|
constructor(vararg expresions: JKExpression) : this(expresions.asList())
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitExpressionList(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitExpressionList(this, data)
|
||||||
|
|
||||||
override var expressions by children(expressions)
|
override var expressions by children(expressions)
|
||||||
@@ -187,20 +187,20 @@ class JKQualifiedExpressionImpl(
|
|||||||
receiver: JKExpression,
|
receiver: JKExpression,
|
||||||
override var operator: JKQualifier,
|
override var operator: JKQualifier,
|
||||||
selector: JKExpression
|
selector: JKExpression
|
||||||
) : JKQualifiedExpression, JKBranchElementBase() {
|
) : JKQualifiedExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitQualifiedExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitQualifiedExpression(this, data)
|
||||||
|
|
||||||
override var receiver: JKExpression by child(receiver)
|
override var receiver: JKExpression by child(receiver)
|
||||||
override var selector: JKExpression by child(selector)
|
override var selector: JKExpression by child(selector)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKExpressionStatementImpl(expression: JKExpression) : JKExpressionStatement, JKBranchElementBase() {
|
class JKExpressionStatementImpl(expression: JKExpression) : JKExpressionStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitExpressionStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitExpressionStatement(this, data)
|
||||||
|
|
||||||
override val expression: JKExpression by child(expression)
|
override val expression: JKExpression by child(expression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKDeclarationStatementImpl(declaredStatements: List<JKDeclaration>) : JKDeclarationStatement, JKBranchElementBase() {
|
class JKDeclarationStatementImpl(declaredStatements: List<JKDeclaration>) : JKDeclarationStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val declaredStatements by children(declaredStatements)
|
override val declaredStatements by children(declaredStatements)
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDeclarationStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDeclarationStatement(this, data)
|
||||||
@@ -209,26 +209,26 @@ class JKDeclarationStatementImpl(declaredStatements: List<JKDeclaration>) : JKDe
|
|||||||
class JKArrayAccessExpressionImpl(
|
class JKArrayAccessExpressionImpl(
|
||||||
expression: JKExpression,
|
expression: JKExpression,
|
||||||
indexExpression: JKExpression
|
indexExpression: JKExpression
|
||||||
) : JKArrayAccessExpression, JKBranchElementBase() {
|
) : JKArrayAccessExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitArrayAccessExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitArrayAccessExpression(this, data)
|
||||||
|
|
||||||
override var expression: JKExpression by child(expression)
|
override var expression: JKExpression by child(expression)
|
||||||
override var indexExpression: JKExpression by child(indexExpression)
|
override var indexExpression: JKExpression by child(indexExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKParenthesizedExpressionImpl(expression: JKExpression) : JKParenthesizedExpression, JKBranchElementBase() {
|
class JKParenthesizedExpressionImpl(expression: JKExpression) : JKParenthesizedExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitParenthesizedExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitParenthesizedExpression(this, data)
|
||||||
|
|
||||||
override var expression: JKExpression by child(expression)
|
override var expression: JKExpression by child(expression)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKTypeCastExpressionImpl(override var expression: JKExpression, type: JKTypeElement) : JKTypeCastExpression, JKBranchElementBase() {
|
class JKTypeCastExpressionImpl(override var expression: JKExpression, type: JKTypeElement) : JKTypeCastExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitTypeCastExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitTypeCastExpression(this, data)
|
||||||
|
|
||||||
override var type by child(type)
|
override var type by child(type)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKTypeElementImpl(override var type: JKType) : JKTypeElement, JKElementBase() {
|
class JKTypeElementImpl(override var type: JKType) : JKTypeElement, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitTypeElement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitTypeElement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ fun JKType.fqName(): String =
|
|||||||
fun JKType.equalsByName(other: JKType) = fqName() == other.fqName()
|
fun JKType.equalsByName(other: JKType) = fqName() == other.fqName()
|
||||||
|
|
||||||
|
|
||||||
class JKNullLiteral : JKLiteralExpression, JKElementBase() {
|
class JKNullLiteral : JKLiteralExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val literal: String
|
override val literal: String
|
||||||
get() = "null"
|
get() = "null"
|
||||||
override val type: LiteralType
|
override val type: LiteralType
|
||||||
@@ -273,7 +273,7 @@ class JKNullLiteral : JKLiteralExpression, JKElementBase() {
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLiteralExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLiteralExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKBooleanLiteral(val value: Boolean) : JKLiteralExpression, JKElementBase() {
|
class JKBooleanLiteral(val value: Boolean) : JKLiteralExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val literal: String
|
override val literal: String
|
||||||
get() = value.toString()
|
get() = value.toString()
|
||||||
override val type: LiteralType
|
override val type: LiteralType
|
||||||
@@ -305,7 +305,7 @@ fun JKLiteralExpression.LiteralType.toJkType(symbolProvider: JKSymbolProvider):
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKLocalVariableImpl(modifierList: JKModifierList, type: JKTypeElement, name: JKNameIdentifier, initializer: JKExpression) :
|
class JKLocalVariableImpl(modifierList: JKModifierList, type: JKTypeElement, name: JKNameIdentifier, initializer: JKExpression) :
|
||||||
JKLocalVariable, JKBranchElementBase() {
|
JKLocalVariable, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var modifierList by child(modifierList)
|
override var modifierList by child(modifierList)
|
||||||
override var initializer by child(initializer)
|
override var initializer by child(initializer)
|
||||||
override var name by child(name)
|
override var name by child(name)
|
||||||
@@ -314,7 +314,7 @@ class JKLocalVariableImpl(modifierList: JKModifierList, type: JKTypeElement, nam
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLocalVariable(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLocalVariable(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKStubExpressionImpl : JKStubExpression, JKElementBase() {
|
class JKStubExpressionImpl : JKStubExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitStubExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitStubExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,42 +339,41 @@ object JKBodyStub : JKBlock, JKTreeElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKBlockStatementImpl(block: JKBlock) : JKBlockStatement, JKBranchElementBase() {
|
class JKBlockStatementImpl(block: JKBlock) : JKBlockStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var block by child(block)
|
override var block by child(block)
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlockStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlockStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKThisExpressionImpl : JKThisExpression, JKElementBase() {
|
class JKThisExpressionImpl : JKThisExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitThisExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitThisExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKSuperExpressionImpl : JKSuperExpression, JKElementBase() {
|
class JKSuperExpressionImpl : JKSuperExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitSuperExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitSuperExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKWhileStatementImpl(condition: JKExpression, body: JKStatement) : JKWhileStatement, JKBranchElementBase() {
|
class JKWhileStatementImpl(condition: JKExpression, body: JKStatement) : JKWhileStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
override var body by child(body)
|
override var body by child(body)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitWhileStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitWhileStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKDoWhileStatementImpl(body: JKStatement, condition: JKExpression) : JKDoWhileStatement, JKBranchElementBase() {
|
class JKDoWhileStatementImpl(body: JKStatement, condition: JKExpression) : JKDoWhileStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
override var body by child(body)
|
override var body by child(body)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDoWhileStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDoWhileStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class JKBreakStatementImpl : JKBreakStatement, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
class JKBreakStatementImpl : JKBreakStatement, JKElementBase() {
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBreakStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBreakStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKBreakWithLabelStatementImpl(override var label: JKNameIdentifier) : JKBreakWithLabelStatement, JKElementBase() {
|
class JKBreakWithLabelStatementImpl(override var label: JKNameIdentifier) : JKBreakWithLabelStatement, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBreakWithLabelStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBreakWithLabelStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKIfStatementImpl(condition: JKExpression, thenBranch: JKStatement) : JKIfStatement, JKBranchElementBase() {
|
class JKIfStatementImpl(condition: JKExpression, thenBranch: JKStatement) : JKIfStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var thenBranch by child(thenBranch)
|
override var thenBranch by child(thenBranch)
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
|
|
||||||
@@ -382,7 +381,7 @@ class JKIfStatementImpl(condition: JKExpression, thenBranch: JKStatement) : JKIf
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKIfElseStatementImpl(condition: JKExpression, thenBranch: JKStatement, elseBranch: JKStatement) : JKIfElseStatement,
|
class JKIfElseStatementImpl(condition: JKExpression, thenBranch: JKStatement, elseBranch: JKStatement) : JKIfElseStatement,
|
||||||
JKBranchElementBase() {
|
JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var elseBranch by child(elseBranch)
|
override var elseBranch by child(elseBranch)
|
||||||
override var thenBranch by child(thenBranch)
|
override var thenBranch by child(thenBranch)
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
@@ -391,7 +390,7 @@ class JKIfElseStatementImpl(condition: JKExpression, thenBranch: JKStatement, el
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKIfElseExpressionImpl(condition: JKExpression, thenBranch: JKExpression, elseBranch: JKExpression) : JKIfElseExpression,
|
class JKIfElseExpressionImpl(condition: JKExpression, thenBranch: JKExpression, elseBranch: JKExpression) : JKIfElseExpression,
|
||||||
JKBranchElementBase() {
|
JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var elseBranch by child(elseBranch)
|
override var elseBranch by child(elseBranch)
|
||||||
override var thenBranch by child(thenBranch)
|
override var thenBranch by child(thenBranch)
|
||||||
override var condition by child(condition)
|
override var condition by child(condition)
|
||||||
@@ -399,19 +398,19 @@ class JKIfElseExpressionImpl(condition: JKExpression, thenBranch: JKExpression,
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitIfElseExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitIfElseExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKClassAccessExpressionImpl(override var identifier: JKClassSymbol) : JKClassAccessExpression, JKElementBase() {
|
class JKClassAccessExpressionImpl(override var identifier: JKClassSymbol) : JKClassAccessExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitClassAccessExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitClassAccessExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKModalityModifierImpl(override val modality: JKModalityModifier.Modality) : JKModalityModifier, JKElementBase() {
|
class JKModalityModifierImpl(override val modality: JKModalityModifier.Modality) : JKModalityModifier, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitModalityModifier(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitModalityModifier(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKAccessModifierImpl(override val visibility: JKAccessModifier.Visibility) : JKAccessModifier, JKElementBase() {
|
class JKAccessModifierImpl(override val visibility: JKAccessModifier.Visibility) : JKAccessModifier, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitAccessModifier(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitAccessModifier(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKMutabilityModifierImpl(override val mutability: Mutability) : JKMutabilityModifier, JKElementBase() {
|
class JKMutabilityModifierImpl(override val mutability: Mutability) : JKMutabilityModifier, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitMutabilityModifier(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitMutabilityModifier(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,14 +418,14 @@ class JKLambdaExpressionImpl(
|
|||||||
parameters: List<JKParameter> = listOf(
|
parameters: List<JKParameter> = listOf(
|
||||||
JKParameterImpl(JKTypeElementImpl(JKJavaVoidType), JKNameIdentifierImpl("it"), JKModifierListImpl())
|
JKParameterImpl(JKTypeElementImpl(JKJavaVoidType), JKNameIdentifierImpl("it"), JKModifierListImpl())
|
||||||
), statement: JKStatement, returnType: JKTypeElement = JKTypeElementImpl(JKContextType)
|
), statement: JKStatement, returnType: JKTypeElement = JKTypeElementImpl(JKContextType)
|
||||||
) : JKLambdaExpression, JKBranchElementBase() {
|
) : JKLambdaExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var statement by child(statement)
|
override var statement by child(statement)
|
||||||
override val returnType by child(returnType)
|
override val returnType by child(returnType)
|
||||||
override var parameters by children(parameters)
|
override var parameters by children(parameters)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLambdaExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLambdaExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKInheritanceInfoImpl(implements: List<JKTypeElement>) : JKInheritanceInfo, JKBranchElementBase() {
|
class JKInheritanceInfoImpl(implements: List<JKTypeElement>) : JKInheritanceInfo, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val inherit: List<JKTypeElement> by children(implements)
|
override val inherit: List<JKTypeElement> by children(implements)
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitInheritanceInfo(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitInheritanceInfo(this, data)
|
||||||
@@ -436,7 +435,7 @@ class JKDelegationConstructorCallImpl(
|
|||||||
override val identifier: JKMethodSymbol,
|
override val identifier: JKMethodSymbol,
|
||||||
expression: JKExpression,
|
expression: JKExpression,
|
||||||
arguments: JKExpressionList
|
arguments: JKExpressionList
|
||||||
) : JKBranchElementBase(), JKDelegationConstructorCall {
|
) : JKBranchElementBase(), JKDelegationConstructorCall, PsiOwner by PsiOwnerImpl() {
|
||||||
override var typeArguments by children(emptyList<JKTypeElement>())
|
override var typeArguments by children(emptyList<JKTypeElement>())
|
||||||
override val expression: JKExpression by child(expression)
|
override val expression: JKExpression by child(expression)
|
||||||
override val arguments: JKExpressionList by child(arguments)
|
override val arguments: JKExpressionList by child(arguments)
|
||||||
@@ -444,7 +443,7 @@ class JKDelegationConstructorCallImpl(
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDelegationConstructorCall(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDelegationConstructorCall(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKFieldAccessExpressionImpl(override var identifier: JKFieldSymbol) : JKFieldAccessExpression, JKElementBase() {
|
class JKFieldAccessExpressionImpl(override var identifier: JKFieldSymbol) : JKFieldAccessExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitFieldAccessExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitFieldAccessExpression(this, data)
|
||||||
}
|
}
|
||||||
val JKStatement.statements: List<JKStatement>
|
val JKStatement.statements: List<JKStatement>
|
||||||
@@ -454,21 +453,26 @@ val JKStatement.statements: List<JKStatement>
|
|||||||
else -> listOf(this)
|
else -> listOf(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKLabelEmptyImpl : JKLabelEmpty, JKElementBase() {
|
class JKLabelEmptyImpl : JKLabelEmpty, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabelEmpty(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabelEmpty(this, data)
|
||||||
}
|
}
|
||||||
class JKLabelTextImpl(label: JKNameIdentifier) : JKLabelText, JKBranchElementBase() {
|
class JKLabelTextImpl(label: JKNameIdentifier) : JKLabelText, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override val label: JKNameIdentifier by child(label)
|
override val label: JKNameIdentifier by child(label)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabelText(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabelText(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKContinueStatementImpl(label: JKLabel) : JKContinueStatement, JKBranchElementBase() {
|
class JKContinueStatementImpl(label: JKLabel) : JKContinueStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var label: JKLabel by child(label)
|
override var label: JKLabel by child(label)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitContinueStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitContinueStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKLabeledStatementImpl(statement: JKStatement, labels: List<JKNameIdentifier>) : JKLabeledStatement, JKBranchElementBase() {
|
class JKLabeledStatementImpl(statement: JKStatement, labels: List<JKNameIdentifier>) : JKLabeledStatement, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||||
override var statement: JKStatement by child(statement)
|
override var statement: JKStatement by child(statement)
|
||||||
override val labels: List<JKNameIdentifier> by children(labels)
|
override val labels: List<JKNameIdentifier> by children(labels)
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabeledStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabeledStatement(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class PsiOwnerImpl(override var psi: PsiElement? = null) : PsiOwner
|
||||||
|
|
||||||
|
val JKElement.psi: PsiElement?
|
||||||
|
get() = (this as? PsiOwner)?.psi
|
||||||
@@ -35,6 +35,10 @@ interface JKTreeElement : JKElement {
|
|||||||
fun copy(): JKTreeElement
|
fun copy(): JKTreeElement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface PsiOwner {
|
||||||
|
var psi: PsiElement?
|
||||||
|
}
|
||||||
|
|
||||||
interface JKDeclaration : JKTreeElement
|
interface JKDeclaration : JKTreeElement
|
||||||
|
|
||||||
interface JKFile : JKTreeElement, JKBranchElement {
|
interface JKFile : JKTreeElement, JKBranchElement {
|
||||||
|
|||||||
Reference in New Issue
Block a user