Use LightParameter from Kotlin light classes to add an inner class constructor parameter instead of calling addParameter(name, type). The latter tries to load an icon :( (KT-13798)

(cherry picked from commit cc86d79)

(cherry picked from commit de55de2)
This commit is contained in:
Yan Zhulanow
2016-09-10 04:32:28 +03:00
committed by Yan Zhulanow
parent f7f8cff00d
commit 49926fda36
2 changed files with 4 additions and 1 deletions
@@ -20,6 +20,7 @@ import com.intellij.psi.*
import com.intellij.psi.impl.source.PsiClassReferenceType
import com.intellij.psi.util.ClassUtil
import com.intellij.psi.util.PsiTypesUtil
import org.jetbrains.kotlin.asJava.elements.LightParameter
import org.jetbrains.kotlin.java.model.*
import org.jetbrains.kotlin.java.model.internal.DefaultConstructorPsiMethod
import org.jetbrains.kotlin.java.model.types.JeNoneType
@@ -93,7 +94,7 @@ class JeTypeElement(override val psi: PsiClass) : JeElement, TypeElement, JeAnno
declarations += JeMethodExecutableElement(DefaultConstructorPsiMethod(psi, psi.language).apply {
val containingClass = psi.containingClass
if (containingClass != null && !psi.hasModifierProperty(PsiModifier.STATIC)) {
addParameter("\$instance", PsiTypesUtil.getClassType(containingClass))
addParameter(LightParameter("\$instance", PsiTypesUtil.getClassType(containingClass), this, psi.language))
}
})
}