Add support of local classes/objects declared in class constructor parameters
This commit is contained in:
+10
-1
@@ -39,6 +39,7 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.stubs.PsiClassHolderFileStub;
|
||||
import com.intellij.psi.util.CachedValue;
|
||||
import com.intellij.psi.util.CachedValuesManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.reference.SoftReference;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
@@ -106,9 +107,13 @@ public class KotlinLightClassForExplicitDeclaration extends KotlinWrappingLightC
|
||||
//noinspection unchecked
|
||||
PsiElement declaration = JetPsiUtil.getTopmostParentOfTypes(
|
||||
classOrObject,
|
||||
JetNamedFunction.class, JetProperty.class, JetClassInitializer.class
|
||||
JetNamedFunction.class, JetProperty.class, JetClassInitializer.class, JetParameter.class
|
||||
);
|
||||
|
||||
if (declaration instanceof JetParameter) {
|
||||
declaration = PsiTreeUtil.getParentOfType(declaration, JetNamedDeclaration.class);
|
||||
}
|
||||
|
||||
if (declaration instanceof JetNamedFunction) {
|
||||
JetNamedFunction function = (JetNamedFunction) declaration;
|
||||
return getParentByPsiMethod(LightClassUtil.getLightClassMethod(function), function.getName(), false);
|
||||
@@ -128,6 +133,10 @@ public class KotlinLightClassForExplicitDeclaration extends KotlinWrappingLightC
|
||||
return LightClassUtil.getPsiClass((JetClassOrObject) grandparent);
|
||||
}
|
||||
}
|
||||
|
||||
if (declaration instanceof JetClass) {
|
||||
return LightClassUtil.getPsiClass((JetClass) declaration);
|
||||
}
|
||||
}
|
||||
|
||||
return classOrObject.getParent() == classOrObject.getContainingFile() ? getContainingFile() : getContainingClass();
|
||||
|
||||
Reference in New Issue
Block a user