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 {
|
||||
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 }
|
||||
}
|
||||
|
||||
@@ -173,4 +173,23 @@ class JKAssertStatementImpl(condition: JKExpression, description: JKExpression)
|
||||
override val condition by child(condition)
|
||||
|
||||
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