From 66f58c08b2b4a3e0b322d45fbb5bc18d66e5afc2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 8 Dec 2016 18:43:53 +0300 Subject: [PATCH] To avoid obtaining stub-based types with no underlying AST node, create class types from reference elements manually --- j2k/src/org/jetbrains/kotlin/j2k/Converter.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt index 8bad25e8aeb..540e956d62d 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt @@ -171,8 +171,8 @@ class Converter private constructor( val annotations = convertAnnotations(psiClass) var modifiers = convertModifiers(psiClass, false) val typeParameters = convertTypeParameterList(psiClass.typeParameterList) - val extendsTypes = convertToNotNullableTypes(psiClass.extendsListTypes) - val implementsTypes = convertToNotNullableTypes(psiClass.implementsListTypes) + val extendsTypes = convertToNotNullableTypes(psiClass.extendsList) + val implementsTypes = convertToNotNullableTypes(psiClass.implementsList) val name = psiClass.declarationIdentifier() val converted = when { @@ -703,8 +703,11 @@ class Converter private constructor( fun convertTypeElement(element: PsiTypeElement?, nullability: Nullability): Type = (if (element == null) ErrorType() else typeConverter.convertType(element.type, nullability)).assignPrototype(element) - private fun convertToNotNullableTypes(types: Array): List - = types.map { typeConverter.convertType(it, Nullability.NotNull) } + private fun convertToNotNullableTypes(refs: PsiReferenceList?): List { + if (refs == null) return emptyList() + val factory = JavaPsiFacade.getInstance(project).elementFactory + return refs.referenceElements.map { ref -> typeConverter.convertType(factory.createType(ref), Nullability.NotNull) } + } fun convertParameter( parameter: PsiParameter,