KtLightParameter should have a KtLightModifierList anyway

otherwise we wouldn't get proper annotations for `equals` in data-classes
This commit is contained in:
Nicolay Mitropolsky
2018-06-28 20:43:51 +03:00
parent 628833af65
commit eaa58c3ec2
2 changed files with 7 additions and 13 deletions
@@ -14,7 +14,7 @@ import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.SearchScope
import com.intellij.util.IncorrectOperationException
import org.jetbrains.annotations.NonNls
import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtParameter
@@ -29,7 +29,8 @@ class KtLightParameter(
) : LightParameter(clsDelegate.name ?: "p$index", clsDelegate.type, method, KotlinLanguage.INSTANCE),
KtLightDeclaration<KtParameter, PsiParameter> {
private val modifierList: PsiModifierList
private val lightModifierList by lazyPub { KtLightSimpleModifierList(this, emptySet()) }
private var lightIdentifier: KtLightIdentifier? = null
override val kotlinOrigin: KtParameter?
@@ -56,16 +57,7 @@ class KtLightParameter(
return setter?.parameter
}
init {
if (method.lightMemberOrigin is LightMemberOriginForDeclaration) {
this.modifierList = KtLightSimpleModifierList(this, emptySet())
}
else {
this.modifierList = super.getModifierList()
}
}
override fun getModifierList(): PsiModifierList = modifierList
override fun getModifierList(): PsiModifierList = lightModifierList
override fun getNavigationElement(): PsiElement = kotlinOrigin ?: super.getNavigationElement()
@@ -52,6 +52,7 @@ public final class User {
return null;
}
@org.jetbrains.annotations.NotNull()
@java.lang.Override()
public java.lang.String toString() {
return null;
@@ -63,7 +64,8 @@ public final class User {
}
@java.lang.Override()
public boolean equals(java.lang.Object p0) {
public boolean equals(@org.jetbrains.annotations.Nullable()
java.lang.Object p0) {
return false;
}
}