Avoid counting directory parent for file
This commit is contained in:
@@ -373,8 +373,13 @@ public class JetPsiUtil {
|
||||
|
||||
@Nullable
|
||||
@Contract("null, _ -> null")
|
||||
public static PsiElement getTopmostParentOfTypes(@Nullable PsiElement element, @NotNull Class<? extends PsiElement>... parentTypes) {
|
||||
public static PsiElement getTopmostParentOfTypes(
|
||||
@Nullable PsiElement element,
|
||||
@NotNull Class<? extends PsiElement>... parentTypes) {
|
||||
if (element instanceof PsiFile) return null;
|
||||
|
||||
PsiElement answer = PsiTreeUtil.getParentOfType(element, parentTypes);
|
||||
if (answer instanceof PsiFile) return answer;
|
||||
|
||||
do {
|
||||
PsiElement next = PsiTreeUtil.getParentOfType(answer, parentTypes);
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.intellij.openapi.project.DumbService
|
||||
import com.intellij.openapi.project.IndexNotReadyException
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.util.CachedValueProvider
|
||||
import com.intellij.psi.util.CachedValuesManager
|
||||
import com.intellij.psi.util.PsiModificationTracker
|
||||
@@ -195,6 +196,8 @@ private object KotlinResolveDataProvider {
|
||||
)
|
||||
|
||||
fun findAnalyzableParent(element: JetElement): JetElement {
|
||||
if (element is JetFile) return element
|
||||
|
||||
val topmostElement = JetPsiUtil.getTopmostParentOfTypes(element, *topmostElementTypes) as JetElement?
|
||||
// parameters and supertype lists are not analyzable by themselves, but if we don't count them as topmost, we'll stop inside, say,
|
||||
// object expressions inside arguments of super constructors of classes (note that classes themselves are not topmost elements)
|
||||
|
||||
Reference in New Issue
Block a user