Delegate getContaingFile() for UAST declarations to Kotlin origin

This is required to be able to report inspection problems on such
elements.
This commit is contained in:
Dmitry Jemerov
2017-04-12 18:58:27 +02:00
parent 2a9de93a82
commit dd4a5944f1
3 changed files with 8 additions and 8 deletions
@@ -16,10 +16,7 @@
package org.jetbrains.uast.kotlin
import com.intellij.psi.PsiAnonymousClass
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
import com.intellij.psi.*
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.asJava.toLightMethods
@@ -43,6 +40,8 @@ class KotlinUClass private constructor(
return super.getOriginalElement()
}
override fun getContainingFile(): PsiFile? = ktClass?.containingFile ?: psi.containingFile
override val annotations: List<UAnnotation>
get() = ktClass?.annotationEntries?.map { KotlinUAnnotation(it, this) } ?: emptyList()
@@ -16,10 +16,7 @@
package org.jetbrains.uast.kotlin.declarations
import com.intellij.psi.PsiCodeBlock
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiNameIdentifierOwner
import com.intellij.psi.*
import org.jetbrains.kotlin.asJava.elements.KtLightElement
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.asJava.elements.isGetter
@@ -44,6 +41,8 @@ open class KotlinUMethod(
private val kotlinOrigin = (psi.originalElement as KtLightElement<*, *>).kotlinOrigin
override fun getContainingFile(): PsiFile? = kotlinOrigin?.containingFile ?: psi.containingFile
override val annotations by lz {
(kotlinOrigin as? KtDeclaration)?.annotationEntries?.map { KotlinUAnnotation(it, this) } ?: emptyList()
}
@@ -58,6 +58,8 @@ class KotlinUVariable(
override val annotations by lz { psi.annotations.map { JavaUAnnotation(it, this) } }
override val typeReference by lz { getLanguagePlugin().convertOpt<UTypeReferenceExpression>(psi.typeElement, this) }
override fun getContainingFile(): PsiFile? = (psi as? KtLightElement<*, *>)?.kotlinOrigin?.containingFile ?: psi.containingFile
override fun getInitializer(): PsiExpression? {
return super<AbstractKotlinUVariable>.getInitializer()
}