New J2K: Type system.
This commit is contained in:
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.j2k.tree.*
|
||||
import org.jetbrains.kotlin.j2k.tree.conveersionCache.JKMultiverseClass
|
||||
import org.jetbrains.kotlin.j2k.tree.conveersionCache.ReferenceTargetProvider
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||
import java.util.*
|
||||
|
||||
|
||||
class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
@@ -187,7 +186,7 @@ class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
}
|
||||
|
||||
fun PsiTypeCastExpression.toJK(): JKExpression {
|
||||
return JKTypeCastExpressionImpl(operand?.toJK(), castType?.toJK())
|
||||
return JKTypeCastExpressionImpl(operand?.toJK(), castType?.type?.toJK())
|
||||
}
|
||||
|
||||
fun PsiParenthesizedExpression.toJK(): JKExpression {
|
||||
@@ -198,10 +197,10 @@ class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
return JKExpressionListImpl(this?.expressions?.map { it.toJK() }?.toTypedArray() ?: emptyArray())
|
||||
}
|
||||
|
||||
fun PsiElement?.convertReference(): JKReference = when(this){
|
||||
fun PsiElement?.convertReference(): JKReference = when (this) {
|
||||
is PsiMethod -> convertMethodReference()
|
||||
is PsiField -> convertFieldReference()
|
||||
is PsiClass -> convertType()
|
||||
is PsiClass -> convertClassReference()
|
||||
else -> throw Exception("Invalid PSI")
|
||||
}
|
||||
|
||||
@@ -215,32 +214,18 @@ class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
return JKFieldReferenceImpl(clazz, this@JavaToJKTreeBuilder.resolveFieldReference(clazz, this))
|
||||
}
|
||||
|
||||
fun PsiClass.convertType(): JKJavaClassReference {
|
||||
fun PsiClass.convertClassReference(): JKJavaClassReference {
|
||||
return JKClassReferenceImpl(this@JavaToJKTreeBuilder.resolveClassReference(this))
|
||||
}
|
||||
|
||||
fun PsiTypeElement.toJK(): JKType? {
|
||||
return innermostComponentReferenceElement?.convertType()
|
||||
}
|
||||
|
||||
fun PsiJavaCodeReferenceElement.convertType(): JKType {
|
||||
val classReference = JKClassReferenceImpl(this@JavaToJKTreeBuilder.resolveClassReference(this.resolve() as? PsiClass ?: TODO()))
|
||||
val typeArguments = ArrayList<JKType>()
|
||||
parameterList?.typeParameterElements?.forEach { it ->
|
||||
kotlin.run {
|
||||
val type = it.toJK()
|
||||
if (type != null) typeArguments.add(type)
|
||||
}
|
||||
}
|
||||
return JKTypeImpl(classReference, typeArguments)
|
||||
fun PsiType.toJK(): JKType {
|
||||
val ref = JKClassReferenceImpl(this@JavaToJKTreeBuilder.resolveClassReference((this as PsiClassType).resolve() ?: TODO())) //TODO support other types
|
||||
return JKClassTypeImpl(ref, parameters.map { it.toJK() })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private inner class DeclarationMapper(val expressionTreeMapper: ExpressionTreeMapper) {
|
||||
|
||||
val declarationMapper = this
|
||||
|
||||
fun PsiClass.toJK(): JKClass {
|
||||
val classKind: JKClass.ClassKind = when {
|
||||
isAnnotationType -> JKClass.ClassKind.ANNOTATION
|
||||
@@ -248,34 +233,19 @@ class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
isInterface -> JKClass.ClassKind.INTERFACE
|
||||
else -> JKClass.ClassKind.CLASS
|
||||
}
|
||||
return JKClassImpl(with(modifierMapper) { modifierList.toJK() }, JKNameIdentifierImpl(this.name!!), classKind).apply {
|
||||
declarations = children.mapNotNull { ElementVisitor(declarationMapper).apply { it.accept(this) }.resultElement as? JKDeclaration }
|
||||
return JKClassImpl(with(modifierMapper) { modifierList.toJK() }, JKNameIdentifierImpl(name!!), classKind).apply {
|
||||
declarations = children.mapNotNull { ElementVisitor(this@DeclarationMapper).apply { it.accept(this) }.resultElement as? JKDeclaration }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun PsiField.toJK(): JKJavaField {
|
||||
|
||||
val initializer = with(expressionTreeMapper) {
|
||||
initializer?.toJK()
|
||||
}
|
||||
|
||||
val type = JKJavaTypeIdentifierImpl(this.type.canonicalText)
|
||||
val name = JKNameIdentifierImpl(this.name!!)
|
||||
|
||||
val modifierList = with(modifierMapper) {
|
||||
modifierList.toJK()
|
||||
}
|
||||
|
||||
return JKJavaFieldImpl(modifierList, type, name, initializer)
|
||||
return JKJavaFieldImpl(with(modifierMapper) { modifierList.toJK() }, with(expressionTreeMapper) { type.toJK() },
|
||||
JKNameIdentifierImpl(this.name!!), with(expressionTreeMapper) { initializer?.toJK() })
|
||||
}
|
||||
|
||||
fun PsiMethod.toJK(): JKJavaMethod {
|
||||
val modifierList = with(modifierMapper) { modifierList.toJK() }
|
||||
val name = JKNameIdentifierImpl(name)
|
||||
val valueArgumentList = this.parameterList.parameters.map { it -> it.toJK() }
|
||||
val block = body?.toJK()
|
||||
return JKJavaMethodImpl(modifierList, name, valueArgumentList, block)
|
||||
return JKJavaMethodImpl(with(modifierMapper) { modifierList.toJK() }, JKNameIdentifierImpl(name),
|
||||
parameterList.parameters.map { it -> it.toJK() }, body?.toJK())
|
||||
}
|
||||
|
||||
fun PsiMember.toJK(): JKDeclaration? = when (this) {
|
||||
@@ -285,8 +255,7 @@ class JavaToJKTreeBuilder : ReferenceTargetProvider {
|
||||
}
|
||||
|
||||
fun PsiParameter.toJK(): JKValueArgumentImpl {
|
||||
//TODO implement PsiType mapping for type name
|
||||
return JKValueArgumentImpl(JKJavaTypeIdentifierImpl("this.type.getCanonicalText()"), this.name!!)
|
||||
return JKValueArgumentImpl(with(expressionTreeMapper) { type.toJK() }, name!!)
|
||||
}
|
||||
|
||||
fun PsiCodeBlock.toJK(): JKBlock {
|
||||
|
||||
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.j2k.tree.conveersionCache
|
||||
|
||||
import org.jetbrains.kotlin.j2k.tree.*
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKElementBase
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaTypeIdentifierImpl
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaPrimitiveTypeImpl
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKModifierListImpl
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKReferenceType
|
||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
||||
class JKMultiverseField(override var name: JKNameIdentifier) : JKMultiverseDeclaration, JKJavaField {
|
||||
override var initializer: JKExpression? = null
|
||||
override var modifierList: JKModifierList = JKModifierListImpl()
|
||||
override var type: JKTypeIdentifier = JKJavaTypeIdentifierImpl("") //TODO
|
||||
override var type: JKType = JKJavaPrimitiveTypeImpl.BOOLEAN //TODO
|
||||
override val valid: Boolean
|
||||
get() = true
|
||||
}
|
||||
|
||||
+3
-11
@@ -30,20 +30,12 @@ interface ReferenceTargetProvider {
|
||||
fun putUniverseClass(clazz: JKClass)
|
||||
fun putMultiverseClass(clazz: JKMultiverseClass)
|
||||
fun resolveMethodReference(clazz: JKClass, method: PsiMethod): JKMethod {
|
||||
return clazz.declarations.asSequence().filter { it is JKMethod && it.name.name == method.name }.firstOrNull() as JKMethod? ?: run {
|
||||
val met = JKMultiverseMethod(JKNameIdentifierImpl(method.name))
|
||||
clazz.declarations += met
|
||||
met
|
||||
}
|
||||
return clazz.declarations.asSequence().filter { it is JKMethod && it.name.name == method.name }.firstOrNull() as JKMethod?
|
||||
?: JKMultiverseMethod(JKNameIdentifierImpl(method.name)).also { clazz.declarations += it }
|
||||
}
|
||||
|
||||
|
||||
fun resolveFieldReference(clazz: JKClass, field: PsiField): JKJavaField {
|
||||
return clazz.declarations.asSequence().filter { it is JKJavaField && it.name.name == field.name }.firstOrNull() as JKJavaField?
|
||||
?: run {
|
||||
val field = JKMultiverseField(JKNameIdentifierImpl(field.name!!))
|
||||
clazz.declarations += field
|
||||
field
|
||||
}
|
||||
?: JKMultiverseField(JKNameIdentifierImpl(field.name!!)).also { clazz.declarations += it }
|
||||
}
|
||||
}
|
||||
@@ -20,12 +20,10 @@ import org.jetbrains.kotlin.j2k.tree.*
|
||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKTransformer
|
||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
||||
|
||||
class JKJavaFieldImpl(
|
||||
override var modifierList: JKModifierList,
|
||||
override var type: JKTypeIdentifier,
|
||||
override var name: JKNameIdentifier,
|
||||
override var initializer: JKExpression?
|
||||
) : JKJavaField, JKElementBase() {
|
||||
class JKJavaFieldImpl(override var modifierList: JKModifierList,
|
||||
override var type: JKType,
|
||||
override var name: JKNameIdentifier,
|
||||
override var initializer: JKExpression?) : JKJavaField, JKElementBase() {
|
||||
override val valid: Boolean
|
||||
get() = true
|
||||
|
||||
@@ -41,12 +39,6 @@ class JKJavaFieldImpl(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class JKJavaTypeIdentifierImpl(override val typeName: String) : JKJavaTypeIdentifier, JKElementBase() {
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaTypeIdentifier(this, data)
|
||||
}
|
||||
|
||||
|
||||
class JKJavaStringLiteralExpressionImpl(override val text: String) : JKJavaStringLiteralExpression, JKElementBase() {
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaStringLiteralExpression(this, data)
|
||||
}
|
||||
@@ -158,4 +150,26 @@ class JKJavaNewArrayImpl(override var initializer: List<JKExpression>) : JKJavaN
|
||||
override fun <D> transformChildren(transformer: JKTransformer<D>, data: D) {
|
||||
initializer = initializer.map { it.transform<JKLiteralExpression, D>(transformer, data) }
|
||||
}
|
||||
}
|
||||
|
||||
sealed class JKJavaPrimitiveTypeImpl(override val name: String) : JKJavaPrimitiveType, JKElementBase() {
|
||||
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaPrimitiveType(this, data)
|
||||
|
||||
override fun <D> acceptChildren(visitor: JKVisitor<Unit, D>, data: D) {
|
||||
|
||||
}
|
||||
|
||||
object BYTE : JKJavaPrimitiveTypeImpl("byte")
|
||||
object BOOLEAN : JKJavaPrimitiveTypeImpl("boolean")
|
||||
object INT : JKJavaPrimitiveTypeImpl("int")
|
||||
}
|
||||
|
||||
class JKJavaArrayTypeImpl(override val type: JKType, override val dimensionCount: Int) : JKJavaArrayType, JKElementBase() {
|
||||
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaArrayType(this, data)
|
||||
|
||||
override fun <D> acceptChildren(visitor: JKVisitor<Unit, D>, data: D) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -75,10 +75,8 @@ class JKModifierListImpl : JKModifierList, JKElementBase() {
|
||||
}
|
||||
}
|
||||
|
||||
class JKValueArgumentImpl(
|
||||
override var type: JKTypeIdentifier,
|
||||
override val name: String
|
||||
) : JKValueArgument, JKElementBase() {
|
||||
class JKValueArgumentImpl(override var type: JKType,
|
||||
override val name: String) : JKValueArgument, JKElementBase() {
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitValueArgument(this, data)
|
||||
override fun <D> transformChildren(transformer: JKTransformer<D>, data: D) {
|
||||
type = type.transform(transformer, data)
|
||||
@@ -228,12 +226,9 @@ class JKTypeCastExpressionImpl(override var expression: JKExpression?, override
|
||||
}
|
||||
}
|
||||
|
||||
class JKTypeImpl(
|
||||
override val classReference: JKClassReference, override val parameters: List<JKType>,
|
||||
override val nullability: Nullability = Nullability.Default
|
||||
) : JKType, JKElementBase() {
|
||||
class JKClassTypeImpl(override val classReference: JKClassReference, override val parameters: List<JKType>, override val nullability: Nullability = Nullability.Default) : JKClassType, JKElementBase() {
|
||||
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitType(this, data)
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitClassType(this, data)
|
||||
|
||||
override fun <D> acceptChildren(visitor: JKVisitor<Unit, D>, data: D) {
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.j2k.tree.visitors.JKTransformer
|
||||
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
|
||||
|
||||
class JKKtPropertyImpl(override var modifierList: JKModifierList,
|
||||
override var type: JKTypeIdentifier,
|
||||
override var type: JKType,
|
||||
override var name: JKNameIdentifier,
|
||||
override var initializer: JKExpression? = null,
|
||||
override var getter: JKBlock? = null,
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.jetbrains.kotlin.j2k.tree
|
||||
|
||||
interface JKJavaField : JKDeclaration, JKModifierListOwner {
|
||||
val type: JKTypeIdentifier
|
||||
val type: JKType
|
||||
val name: JKNameIdentifier
|
||||
val initializer: JKExpression?
|
||||
}
|
||||
@@ -28,8 +28,13 @@ interface JKJavaForLoop : JKLoop
|
||||
|
||||
interface JKJavaAssignmentExpression : JKExpression
|
||||
|
||||
interface JKJavaTypeIdentifier : JKTypeIdentifier {
|
||||
val typeName: String
|
||||
interface JKJavaPrimitiveType : JKType {
|
||||
val name: String
|
||||
}
|
||||
|
||||
interface JKJavaArrayType : JKType {
|
||||
val type: JKType
|
||||
val dimensionCount : Int
|
||||
}
|
||||
|
||||
interface JKJavaStringLiteralExpression : JKLiteralExpression {
|
||||
|
||||
@@ -113,13 +113,14 @@ interface JKClassReference : JKReference {
|
||||
override val target: JKClass
|
||||
}
|
||||
|
||||
interface JKType : JKElement {
|
||||
interface JKType : JKElement
|
||||
|
||||
interface JKClassType : JKType {
|
||||
val classReference: JKClassReference
|
||||
val nullability: Nullability
|
||||
val parameters: List<JKType>
|
||||
}
|
||||
|
||||
|
||||
interface JKOperatorIdentifier : JKIdentifier
|
||||
|
||||
interface JKQualificationIdentifier : JKIdentifier
|
||||
@@ -134,8 +135,6 @@ interface JKBlock : JKElement {
|
||||
|
||||
interface JKIdentifier : JKElement
|
||||
|
||||
interface JKTypeIdentifier : JKIdentifier
|
||||
|
||||
interface JKNameIdentifier : JKIdentifier {
|
||||
val name: String
|
||||
}
|
||||
@@ -151,7 +150,7 @@ interface JKModifier : JKElement
|
||||
interface JKAccessModifier : JKModifier
|
||||
|
||||
interface JKValueArgument : JKElement {
|
||||
val type: JKTypeIdentifier
|
||||
val type: JKType
|
||||
val name: String
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ interface JKKtAssignmentStatement : JKStatement
|
||||
interface JKKtCall : JKMethodCallExpression
|
||||
|
||||
interface JKKtProperty : JKDeclaration, JKModifierListOwner {
|
||||
val type: JKTypeIdentifier
|
||||
val type: JKType
|
||||
val name: JKNameIdentifier
|
||||
val initializer: JKExpression?
|
||||
val getter: JKBlock?
|
||||
@@ -35,12 +35,11 @@ interface JKKtProperty : JKDeclaration, JKModifierListOwner {
|
||||
}
|
||||
|
||||
interface JKKtFunction : JKDeclaration, JKModifierListOwner {
|
||||
val returnType: JKTypeIdentifier
|
||||
val returnType: JKType
|
||||
val name: JKNameIdentifier
|
||||
val valueArguments: List<JKValueArgument>
|
||||
val block: JKBlock?
|
||||
}
|
||||
|
||||
interface JKKtModifier : JKModifier {
|
||||
val type: KtModifierType
|
||||
|
||||
|
||||
@@ -23,13 +23,13 @@ interface JKTransformer<in D> : JKVisitor<JKElement, D> {
|
||||
override fun visitFieldReference(fieldReference: JKFieldReference, data: D): JKFieldReference = visitReference(fieldReference, data) as JKFieldReference
|
||||
override fun visitClassReference(classReference: JKClassReference, data: D): JKClassReference = visitReference(classReference, data) as JKClassReference
|
||||
override fun visitType(type: JKType, data: D): JKType = visitElement(type, data) as JKType
|
||||
override fun visitClassType(classType: JKClassType, data: D): JKClassType = visitType(classType, data) as JKClassType
|
||||
override fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: D): JKOperatorIdentifier = visitIdentifier(operatorIdentifier, data) as JKOperatorIdentifier
|
||||
override fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: D): JKQualificationIdentifier = visitIdentifier(qualificationIdentifier, data) as JKQualificationIdentifier
|
||||
override fun visitLoop(loop: JKLoop, data: D): JKLoop = visitStatement(loop, data) as JKLoop
|
||||
override fun visitDeclaration(declaration: JKDeclaration, data: D): JKDeclaration = visitElement(declaration, data) as JKDeclaration
|
||||
override fun visitBlock(block: JKBlock, data: D): JKBlock = visitElement(block, data) as JKBlock
|
||||
override fun visitIdentifier(identifier: JKIdentifier, data: D): JKIdentifier = visitElement(identifier, data) as JKIdentifier
|
||||
override fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: D): JKTypeIdentifier = visitIdentifier(typeIdentifier, data) as JKTypeIdentifier
|
||||
override fun visitNameIdentifier(nameIdentifier: JKNameIdentifier, data: D): JKNameIdentifier = visitIdentifier(nameIdentifier, data) as JKNameIdentifier
|
||||
override fun visitLiteralExpression(literalExpression: JKLiteralExpression, data: D): JKLiteralExpression = visitExpression(literalExpression, data) as JKLiteralExpression
|
||||
override fun visitModifierList(modifierList: JKModifierList, data: D): JKModifierList = visitElement(modifierList, data) as JKModifierList
|
||||
@@ -44,7 +44,8 @@ interface JKTransformer<in D> : JKVisitor<JKElement, D> {
|
||||
override fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): JKMethod = visitMethod(javaMethod, data)
|
||||
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): JKLoop = visitLoop(javaForLoop, data)
|
||||
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): JKExpression = visitExpression(javaAssignmentExpression, data)
|
||||
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: D): JKTypeIdentifier = visitTypeIdentifier(javaTypeIdentifier, data)
|
||||
override fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType, data: D): JKType = visitType(javaPrimitiveType, data)
|
||||
override fun visitJavaArrayType(javaArrayType: JKJavaArrayType, data: D): JKType = visitType(javaArrayType, data)
|
||||
override fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: D): JKLiteralExpression = visitLiteralExpression(javaStringLiteralExpression, data)
|
||||
override fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier, data: D): JKOperatorIdentifier = visitOperatorIdentifier(javaOperatorIdentifier, data)
|
||||
override fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: D): JKQualificationIdentifier = visitQualificationIdentifier(javaQualificationIdentifier, data)
|
||||
|
||||
@@ -43,6 +43,8 @@ interface JKTransformerVoid : JKTransformer<Nothing?> {
|
||||
override fun visitClassReference(classReference: JKClassReference, data: Nothing?): JKClassReference = visitClassReference(classReference)
|
||||
fun visitType(type: JKType): JKType = visitElement(type) as JKType
|
||||
override fun visitType(type: JKType, data: Nothing?): JKType = visitType(type)
|
||||
fun visitClassType(classType: JKClassType): JKClassType = visitType(classType) as JKClassType
|
||||
override fun visitClassType(classType: JKClassType, data: Nothing?): JKClassType = visitClassType(classType)
|
||||
fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier): JKOperatorIdentifier = visitIdentifier(operatorIdentifier) as JKOperatorIdentifier
|
||||
override fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: Nothing?): JKOperatorIdentifier = visitOperatorIdentifier(operatorIdentifier)
|
||||
fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier): JKQualificationIdentifier = visitIdentifier(qualificationIdentifier) as JKQualificationIdentifier
|
||||
@@ -55,8 +57,6 @@ interface JKTransformerVoid : JKTransformer<Nothing?> {
|
||||
override fun visitBlock(block: JKBlock, data: Nothing?): JKBlock = visitBlock(block)
|
||||
fun visitIdentifier(identifier: JKIdentifier): JKIdentifier = visitElement(identifier) as JKIdentifier
|
||||
override fun visitIdentifier(identifier: JKIdentifier, data: Nothing?): JKIdentifier = visitIdentifier(identifier)
|
||||
fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier): JKTypeIdentifier = visitIdentifier(typeIdentifier) as JKTypeIdentifier
|
||||
override fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: Nothing?): JKTypeIdentifier = visitTypeIdentifier(typeIdentifier)
|
||||
fun visitNameIdentifier(nameIdentifier: JKNameIdentifier): JKNameIdentifier = visitIdentifier(nameIdentifier) as JKNameIdentifier
|
||||
override fun visitNameIdentifier(nameIdentifier: JKNameIdentifier, data: Nothing?): JKNameIdentifier = visitNameIdentifier(nameIdentifier)
|
||||
fun visitLiteralExpression(literalExpression: JKLiteralExpression): JKLiteralExpression = visitExpression(literalExpression) as JKLiteralExpression
|
||||
@@ -85,8 +85,10 @@ interface JKTransformerVoid : JKTransformer<Nothing?> {
|
||||
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: Nothing?): JKLoop = visitJavaForLoop(javaForLoop)
|
||||
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression): JKExpression = visitExpression(javaAssignmentExpression)
|
||||
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: Nothing?): JKExpression = visitJavaAssignmentExpression(javaAssignmentExpression)
|
||||
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier): JKTypeIdentifier = visitTypeIdentifier(javaTypeIdentifier)
|
||||
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: Nothing?): JKTypeIdentifier = visitJavaTypeIdentifier(javaTypeIdentifier)
|
||||
fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType): JKType = visitType(javaPrimitiveType)
|
||||
override fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType, data: Nothing?): JKType = visitJavaPrimitiveType(javaPrimitiveType)
|
||||
fun visitJavaArrayType(javaArrayType: JKJavaArrayType): JKType = visitType(javaArrayType)
|
||||
override fun visitJavaArrayType(javaArrayType: JKJavaArrayType, data: Nothing?): JKType = visitJavaArrayType(javaArrayType)
|
||||
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression): JKLiteralExpression = visitLiteralExpression(javaStringLiteralExpression)
|
||||
override fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: Nothing?): JKLiteralExpression = visitJavaStringLiteralExpression(javaStringLiteralExpression)
|
||||
fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier): JKOperatorIdentifier = visitOperatorIdentifier(javaOperatorIdentifier)
|
||||
|
||||
@@ -23,13 +23,13 @@ interface JKVisitor<out R, in D> {
|
||||
fun visitFieldReference(fieldReference: JKFieldReference, data: D): R = visitReference(fieldReference, data)
|
||||
fun visitClassReference(classReference: JKClassReference, data: D): R = visitReference(classReference, data)
|
||||
fun visitType(type: JKType, data: D): R = visitElement(type, data)
|
||||
fun visitClassType(classType: JKClassType, data: D): R = visitType(classType, data)
|
||||
fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: D): R = visitIdentifier(operatorIdentifier, data)
|
||||
fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier, data: D): R = visitIdentifier(qualificationIdentifier, data)
|
||||
fun visitLoop(loop: JKLoop, data: D): R = visitStatement(loop, data)
|
||||
fun visitDeclaration(declaration: JKDeclaration, data: D): R = visitElement(declaration, data)
|
||||
fun visitBlock(block: JKBlock, data: D): R = visitElement(block, data)
|
||||
fun visitIdentifier(identifier: JKIdentifier, data: D): R = visitElement(identifier, data)
|
||||
fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: D): R = visitIdentifier(typeIdentifier, data)
|
||||
fun visitNameIdentifier(nameIdentifier: JKNameIdentifier, data: D): R = visitIdentifier(nameIdentifier, data)
|
||||
fun visitLiteralExpression(literalExpression: JKLiteralExpression, data: D): R = visitExpression(literalExpression, data)
|
||||
fun visitModifierList(modifierList: JKModifierList, data: D): R = visitElement(modifierList, data)
|
||||
@@ -44,7 +44,8 @@ interface JKVisitor<out R, in D> {
|
||||
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
||||
fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: D): R = visitLoop(javaForLoop, data)
|
||||
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: D): R = visitExpression(javaAssignmentExpression, data)
|
||||
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: D): R = visitTypeIdentifier(javaTypeIdentifier, data)
|
||||
fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType, data: D): R = visitType(javaPrimitiveType, data)
|
||||
fun visitJavaArrayType(javaArrayType: JKJavaArrayType, data: D): R = visitType(javaArrayType, data)
|
||||
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: D): R = visitLiteralExpression(javaStringLiteralExpression, data)
|
||||
fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier, data: D): R = visitOperatorIdentifier(javaOperatorIdentifier, data)
|
||||
fun visitJavaQualificationIdentifier(javaQualificationIdentifier: JKJavaQualificationIdentifier, data: D): R = visitQualificationIdentifier(javaQualificationIdentifier, data)
|
||||
|
||||
@@ -43,6 +43,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||
override fun visitClassReference(classReference: JKClassReference, data: Nothing?) = visitClassReference(classReference)
|
||||
fun visitType(type: JKType) = visitElement(type, null)
|
||||
override fun visitType(type: JKType, data: Nothing?) = visitType(type)
|
||||
fun visitClassType(classType: JKClassType) = visitType(classType, null)
|
||||
override fun visitClassType(classType: JKClassType, data: Nothing?) = visitClassType(classType)
|
||||
fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier) = visitIdentifier(operatorIdentifier, null)
|
||||
override fun visitOperatorIdentifier(operatorIdentifier: JKOperatorIdentifier, data: Nothing?) = visitOperatorIdentifier(operatorIdentifier)
|
||||
fun visitQualificationIdentifier(qualificationIdentifier: JKQualificationIdentifier) = visitIdentifier(qualificationIdentifier, null)
|
||||
@@ -55,8 +57,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||
override fun visitBlock(block: JKBlock, data: Nothing?) = visitBlock(block)
|
||||
fun visitIdentifier(identifier: JKIdentifier) = visitElement(identifier, null)
|
||||
override fun visitIdentifier(identifier: JKIdentifier, data: Nothing?) = visitIdentifier(identifier)
|
||||
fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier) = visitIdentifier(typeIdentifier, null)
|
||||
override fun visitTypeIdentifier(typeIdentifier: JKTypeIdentifier, data: Nothing?) = visitTypeIdentifier(typeIdentifier)
|
||||
fun visitNameIdentifier(nameIdentifier: JKNameIdentifier) = visitIdentifier(nameIdentifier, null)
|
||||
override fun visitNameIdentifier(nameIdentifier: JKNameIdentifier, data: Nothing?) = visitNameIdentifier(nameIdentifier)
|
||||
fun visitLiteralExpression(literalExpression: JKLiteralExpression) = visitExpression(literalExpression, null)
|
||||
@@ -85,8 +85,10 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||
override fun visitJavaForLoop(javaForLoop: JKJavaForLoop, data: Nothing?) = visitJavaForLoop(javaForLoop)
|
||||
fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression) = visitExpression(javaAssignmentExpression, null)
|
||||
override fun visitJavaAssignmentExpression(javaAssignmentExpression: JKJavaAssignmentExpression, data: Nothing?) = visitJavaAssignmentExpression(javaAssignmentExpression)
|
||||
fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier) = visitTypeIdentifier(javaTypeIdentifier, null)
|
||||
override fun visitJavaTypeIdentifier(javaTypeIdentifier: JKJavaTypeIdentifier, data: Nothing?) = visitJavaTypeIdentifier(javaTypeIdentifier)
|
||||
fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType) = visitType(javaPrimitiveType, null)
|
||||
override fun visitJavaPrimitiveType(javaPrimitiveType: JKJavaPrimitiveType, data: Nothing?) = visitJavaPrimitiveType(javaPrimitiveType)
|
||||
fun visitJavaArrayType(javaArrayType: JKJavaArrayType) = visitType(javaArrayType, null)
|
||||
override fun visitJavaArrayType(javaArrayType: JKJavaArrayType, data: Nothing?) = visitJavaArrayType(javaArrayType)
|
||||
fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression) = visitLiteralExpression(javaStringLiteralExpression, null)
|
||||
override fun visitJavaStringLiteralExpression(javaStringLiteralExpression: JKJavaStringLiteralExpression, data: Nothing?) = visitJavaStringLiteralExpression(javaStringLiteralExpression)
|
||||
fun visitJavaOperatorIdentifier(javaOperatorIdentifier: JKJavaOperatorIdentifier) = visitOperatorIdentifier(javaOperatorIdentifier, null)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package p;
|
||||
public class Some {
|
||||
public String test=""+"a";
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String args) {
|
||||
System.out.println("Test");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user