New J2K: do not print Unit types

This commit is contained in:
Ilya Kirillov
2020-02-17 16:48:40 +03:00
parent 6c1e2cc196
commit ee0ec421ce
2 changed files with 8 additions and 2 deletions
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.nj2k.tree.*
import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorWithCommentsPrinting import org.jetbrains.kotlin.nj2k.tree.visitors.JKVisitorWithCommentsPrinting
import org.jetbrains.kotlin.nj2k.types.JKContextType import org.jetbrains.kotlin.nj2k.types.JKContextType
import org.jetbrains.kotlin.nj2k.types.isInterface import org.jetbrains.kotlin.nj2k.types.isInterface
import org.jetbrains.kotlin.nj2k.types.isUnit
import org.jetbrains.kotlin.nj2k.types.updateNullability import org.jetbrains.kotlin.nj2k.types.updateNullability
import org.jetbrains.kotlin.utils.addToStdlib.safeAs import org.jetbrains.kotlin.utils.addToStdlib.safeAs
@@ -346,8 +347,10 @@ internal class JKCodeBuilder(context: NewJ2kConverterContext) {
it.accept(this) it.accept(this)
} }
renderTokenElement(method.rightParen) renderTokenElement(method.rightParen)
printer.print(": ") if (!method.returnType.type.isUnit()) {
method.returnType.accept(this) printer.print(": ")
method.returnType.accept(this)
}
renderExtraTypeParametersUpperBounds(method.typeParameterList) renderExtraTypeParametersUpperBounds(method.typeParameterList)
method.block.accept(this) method.block.accept(this)
} }
@@ -184,6 +184,9 @@ fun JKType.isArrayType() =
else -> false else -> false
} }
fun JKType.isUnit() =
safeAs<JKClassType>()?.classReference?.fqName == KotlinBuiltIns.FQ_NAMES.unit.asString()
val JKType.isCollectionType: Boolean val JKType.isCollectionType: Boolean
get() = safeAs<JKClassType>()?.classReference?.fqName in collectionFqNames get() = safeAs<JKClassType>()?.classReference?.fqName in collectionFqNames