diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt index adbf554665d..13b5d838702 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt @@ -248,10 +248,14 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) { fun PsiMethod.toJK(): JKJavaMethod { return JKJavaMethodImpl( with(modifierMapper) { modifierList.toJK() }, - with(expressionTreeMapper) { returnTypeElement?.toJK() ?: TODO() }, + with(expressionTreeMapper) { + returnTypeElement?.toJK() + ?: JKTypeElementImpl(JKJavaVoidType).takeIf { isConstructor } + ?: TODO() + }, JKNameIdentifierImpl(name), parameterList.parameters.map { it -> it.toJK() }, - body?.toJK() ?: TODO() + body?.toJK() ?: JKBodyStub ).also { (symbolProvider.provideSymbol(this) as? JKUniverseMethodSymbol)?.run { target = it } } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt index 7b3afaf2f4b..f3005f48340 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt @@ -173,4 +173,23 @@ class JKAssertStatementImpl(condition: JKExpression, description: JKExpression) override val condition by child(condition) override fun accept(visitor: JKVisitor, data: D): R = visitor.visitAssertStatement(this, data) +} + +object JKBodyStub : JKBlock, JKTreeElement { + override var statements: List + get() = emptyList() + set(value) {} + + override fun accept(visitor: JKVisitor, data: D): R = visitor.visitBlock(this, data) + + override fun acceptChildren(visitor: JKVisitor, data: D) {} + + override val parent: JKElement? + get() = null + + override fun detach(from: JKElement) { + } + + override fun attach(to: JKElement) { + } } \ No newline at end of file