From 0e2dac0899db30ed5e7ea579bcb96038e93232a1 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Wed, 30 May 2018 18:37:41 +0300 Subject: [PATCH] New J2K: Add nullability to all types --- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt | 9 +++++++-- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt index dd4fca01dc0..38b782ed215 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt @@ -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 accept(visitor: JKVisitor, data: D): R = visitor.visitReturnStatement(this, data) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt index 70b1c8987dd..10d4b248182 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt @@ -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 } interface JKJavaPrimitiveType : JKType { val jvmPrimitiveType: JvmPrimitiveType + override val nullability: Nullability + get() = Nullability.NotNull } interface JKJavaArrayType : JKType {