diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt index 4ff85dfacfe..866d1f966f9 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt @@ -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 get() = ktClass?.annotationEntries?.map { KotlinUAnnotation(it, this) } ?: emptyList() diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt index 5ff6c2a8463..f7da97f9889 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt @@ -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() } diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt index 8d15a04b0d0..ce28b88cc92 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt @@ -58,6 +58,8 @@ class KotlinUVariable( override val annotations by lz { psi.annotations.map { JavaUAnnotation(it, this) } } override val typeReference by lz { getLanguagePlugin().convertOpt(psi.typeElement, this) } + override fun getContainingFile(): PsiFile? = (psi as? KtLightElement<*, *>)?.kotlinOrigin?.containingFile ?: psi.containingFile + override fun getInitializer(): PsiExpression? { return super.getInitializer() }