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.types.JKContextType
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.utils.addToStdlib.safeAs
@@ -346,8 +347,10 @@ internal class JKCodeBuilder(context: NewJ2kConverterContext) {
it.accept(this)
}
renderTokenElement(method.rightParen)
printer.print(": ")
method.returnType.accept(this)
if (!method.returnType.type.isUnit()) {
printer.print(": ")
method.returnType.accept(this)
}
renderExtraTypeParametersUpperBounds(method.typeParameterList)
method.block.accept(this)
}
@@ -184,6 +184,9 @@ fun JKType.isArrayType() =
else -> false
}
fun JKType.isUnit() =
safeAs<JKClassType>()?.classReference?.fqName == KotlinBuiltIns.FQ_NAMES.unit.asString()
val JKType.isCollectionType: Boolean
get() = safeAs<JKClassType>()?.classReference?.fqName in collectionFqNames