(S|U)LC: fix getTextOffset and getTextRange for modifier list of accessors
in a similar way 36e1149e did for property accessors
This commit is contained in:
committed by
Ilya Kirillov
parent
19151fa866
commit
e1344968ec
+19
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.light.classes.symbol.modifierLists
|
||||
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiAnnotation
|
||||
import com.intellij.psi.PsiModifier
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation
|
||||
@@ -12,6 +13,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
||||
import org.jetbrains.kotlin.light.classes.symbol.invalidAccess
|
||||
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
|
||||
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasBody
|
||||
|
||||
internal class SymbolLightMemberModifierList<T : KtLightMember<*>>(
|
||||
@@ -50,8 +52,25 @@ internal class SymbolLightMemberModifierList<T : KtLightMember<*>>(
|
||||
get() = invalidAccess()
|
||||
|
||||
override fun getAnnotations(): Array<out PsiAnnotation> = annotations.toTypedArray()
|
||||
|
||||
override fun findAnnotation(qualifiedName: String) = annotations.firstOrNull { it.qualifiedName == qualifiedName }
|
||||
|
||||
override fun getTextOffset(): Int {
|
||||
val auxiliaryOrigin = (owner as? KtLightMember<*>)?.lightMemberOrigin?.auxiliaryOriginalElement
|
||||
return if (auxiliaryOrigin is KtPropertyAccessor)
|
||||
auxiliaryOrigin.modifierList?.textOffset ?: super.getTextOffset()
|
||||
else
|
||||
super.getTextOffset()
|
||||
}
|
||||
|
||||
override fun getTextRange(): TextRange {
|
||||
val auxiliaryOrigin = (owner as? KtLightMember<*>)?.lightMemberOrigin?.auxiliaryOriginalElement
|
||||
return if (auxiliaryOrigin is KtPropertyAccessor)
|
||||
auxiliaryOrigin.modifierList?.textRange ?: super.getTextRange()
|
||||
else
|
||||
super.getTextRange()
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean = this === other
|
||||
|
||||
override fun hashCode(): Int = kotlinOrigin.hashCode()
|
||||
|
||||
Reference in New Issue
Block a user