New J2K: Add nullability to all types

This commit is contained in:
Simon Ogorodnik
2018-05-30 18:37:41 +03:00
committed by Ilya Kirillov
parent 58de0ae6bc
commit 0e2dac0899
2 changed files with 13 additions and 4 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.j2k.tree.impl
import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.*
import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor
@@ -125,9 +126,13 @@ sealed class JKJavaPrimitiveTypeImpl(override val jvmPrimitiveType: JvmPrimitive
}
}
object JKJavaVoidType : JKType
object JKJavaVoidType : JKType {
override val nullability: Nullability
get() = Nullability.NotNull
}
class JKJavaArrayTypeImpl(override val type: JKType) : JKJavaArrayType
class JKJavaArrayTypeImpl(override val type: JKType, override val nullability: Nullability = Nullability.Default) : JKJavaArrayType {
}
class JKReturnStatementImpl(expression: JKExpression) : JKBranchElementBase(), JKReturnStatement {
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitReturnStatement(this, data)
@@ -43,16 +43,20 @@ interface JKModifierListOwner {
var modifierList: JKModifierList
}
interface JKType
interface JKType {
val nullability: Nullability
}
interface JKClassType : JKType {
val classReference: JKSymbol?
val nullability: Nullability
override val nullability: Nullability
val parameters: List<JKType>
}
interface JKJavaPrimitiveType : JKType {
val jvmPrimitiveType: JvmPrimitiveType
override val nullability: Nullability
get() = Nullability.NotNull
}
interface JKJavaArrayType : JKType {