From 49926fda3687498a3c13a5030f8e0c83cb1b0a54 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Sat, 10 Sep 2016 04:32:28 +0300 Subject: [PATCH] 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) --- .../src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt | 2 ++ .../org/jetbrains/kotlin/java/model/elements/JeTypeElement.kt | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt index 7789641b694..0991c03e1e7 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/src/main/java/com/example/dagger/kotlin/ui/HomeActivity.kt @@ -35,4 +35,6 @@ class HomeActivity : DemoActivity() { // TODO do something with the injected dependencies here! locationInfo.text = "Injected LocationManager:\n$locationManager" } + + inner class InnerClass } diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeTypeElement.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeTypeElement.kt index 3eeca91af3c..400ce6c99c1 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeTypeElement.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeTypeElement.kt @@ -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)) } }) }