New J2K: Add body stub for abstract methods & set return type to void for <init>
This commit is contained in:
committed by
Ilya Kirillov
parent
cb4474b9a4
commit
607d9820e7
@@ -248,10 +248,14 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
fun PsiMethod.toJK(): JKJavaMethod {
|
fun PsiMethod.toJK(): JKJavaMethod {
|
||||||
return JKJavaMethodImpl(
|
return JKJavaMethodImpl(
|
||||||
with(modifierMapper) { modifierList.toJK() },
|
with(modifierMapper) { modifierList.toJK() },
|
||||||
with(expressionTreeMapper) { returnTypeElement?.toJK() ?: TODO() },
|
with(expressionTreeMapper) {
|
||||||
|
returnTypeElement?.toJK()
|
||||||
|
?: JKTypeElementImpl(JKJavaVoidType).takeIf { isConstructor }
|
||||||
|
?: TODO()
|
||||||
|
},
|
||||||
JKNameIdentifierImpl(name),
|
JKNameIdentifierImpl(name),
|
||||||
parameterList.parameters.map { it -> it.toJK() },
|
parameterList.parameters.map { it -> it.toJK() },
|
||||||
body?.toJK() ?: TODO()
|
body?.toJK() ?: JKBodyStub
|
||||||
).also {
|
).also {
|
||||||
(symbolProvider.provideSymbol(this) as? JKUniverseMethodSymbol)?.run { target = it }
|
(symbolProvider.provideSymbol(this) as? JKUniverseMethodSymbol)?.run { target = it }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -173,4 +173,23 @@ class JKAssertStatementImpl(condition: JKExpression, description: JKExpression)
|
|||||||
override val condition by child(condition)
|
override val condition by child(condition)
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitAssertStatement(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitAssertStatement(this, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
object JKBodyStub : JKBlock, JKTreeElement {
|
||||||
|
override var statements: List<JKStatement>
|
||||||
|
get() = emptyList()
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitBlock(this, data)
|
||||||
|
|
||||||
|
override fun <D> acceptChildren(visitor: JKVisitor<Unit, D>, data: D) {}
|
||||||
|
|
||||||
|
override val parent: JKElement?
|
||||||
|
get() = null
|
||||||
|
|
||||||
|
override fun detach(from: JKElement) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun attach(to: JKElement) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user