New J2K: Fix enum constant constructing

This commit is contained in:
Ilya Kirillov
2018-11-26 18:19:42 +03:00
committed by Ilya Kirillov
parent b3dc0d4aff
commit 2292e0b792
2 changed files with 13 additions and 9 deletions
@@ -314,8 +314,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
JKEnumConstantImpl(
JKNameIdentifierImpl(name),
with(expressionTreeMapper) { argumentList.toJK() },
JKTypeElementImpl(JKClassTypeImpl(symbolProvider.provideDirectSymbol(containingClass!!) as JKClassSymbol, emptyList())),
with(modifierMapper) { modifierList.toJK() }
JKTypeElementImpl(JKClassTypeImpl(symbolProvider.provideDirectSymbol(containingClass!!) as JKClassSymbol, emptyList()))
)
fun PsiMember.modality() =
@@ -55,13 +55,18 @@ private fun JKKtOperatorToken.binaryExpressionMethodSymbol(
private fun JKKtOperatorToken.unaryExpressionMethodSymbol(
operandType: JKType,
symbolProvider: JKSymbolProvider
): JKMethodSymbol =
operandType.classSymbol(symbolProvider).target.declarations// todo look for extensions
.asSequence()
.filterIsInstance<KtNamedFunction>()
.filter { it.name == operatorName }
.mapNotNull { symbolProvider.provideDirectSymbol(it) as? JKMethodSymbol }
.firstOrNull()!!
): JKMethodSymbol {
val classSymbol = operandType.classSymbol(symbolProvider)
return when (classSymbol) {
is JKMultiverseKtClassSymbol ->// todo look for extensions
classSymbol.target.declarations.asSequence()
.filterIsInstance<KtNamedFunction>()
.filter { it.name == operatorName }
.mapNotNull { symbolProvider.provideDirectSymbol(it) as? JKMethodSymbol }
.firstOrNull()!!
else -> TODO(classSymbol::class.toString())
}
}
fun kotlinBinaryExpression(