New J2K: Fix declarations creation

This commit is contained in:
Ilya Kirillov
2018-12-19 16:15:49 +03:00
committed by Ilya Kirillov
parent 0feaad2205
commit eda99a588d
@@ -502,16 +502,9 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
}
}
fun PsiMember.toJK(): JKDeclaration? = when (this) {
is PsiEnumConstant -> this.toJK()
is PsiField -> this.toJK()
is PsiMethod -> this.toJK()
else -> null
}
fun PsiParameter.toJK(): JKParameter {
return JKParameterImpl(
with(expressionTreeMapper) { typeElement?.toJK() } ?: TODO(),
with(expressionTreeMapper) { typeElement?.toJK() } ?: JKTypeElementImpl(JKNoTypeImpl),
JKNameIdentifierImpl(name!!)
).also {
symbolProvider.provideUniverseSymbol(this, it)
@@ -523,14 +516,6 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
return JKBlockImpl(statements.map { it.toJK() })
}
fun Array<out PsiElement>.toJK(): List<JKDeclaration> {
return this.map {
if (it is PsiLocalVariable) {
it.toJK()
} else TODO()
}
}
fun PsiLocalVariable.toJK(): JKLocalVariable =
JKLocalVariableImpl(
with(expressionTreeMapper) { typeElement.toJK() },
@@ -547,7 +532,14 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
null -> JKExpressionStatementImpl(JKStubExpressionImpl())
is PsiExpressionStatement -> JKExpressionStatementImpl(with(expressionTreeMapper) { expression.toJK() })
is PsiReturnStatement -> JKReturnStatementImpl(with(expressionTreeMapper) { returnValue.toJK() })
is PsiDeclarationStatement -> JKDeclarationStatementImpl(declaredElements.toJK())
is PsiDeclarationStatement ->
JKDeclarationStatementImpl(declaredElements.map {
when (it) {
is PsiClass -> it.toJK()
is PsiLocalVariable -> it.toJK()
else -> TODO(it::class.java.toString())
}
})
is PsiAssertStatement ->
JKJavaAssertStatementImpl(
with(expressionTreeMapper) { assertCondition.toJK() },