From 5295f884e8c526efd49d502860e18eec083aed99 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Tue, 31 Jan 2012 17:48:57 +0400 Subject: [PATCH] An API (for Kotlin) for mirror source substitution. --- .../src/com/intellij/psi/impl/compiled/ClsClassImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java index 4f9a03907002..968f34ad5bc3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java @@ -19,6 +19,7 @@ import com.intellij.navigation.ItemPresentation; import com.intellij.navigation.ItemPresentationProviders; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.ui.Queryable; +import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Ref; import com.intellij.psi.*; @@ -52,6 +53,7 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple private final ClassInnerStuffCache innersCache = new ClassInnerStuffCache(this); private final PsiIdentifier myNameIdentifier; private final PsiDocComment myDocComment; + public static final Key DELEGATE_KEY = Key.create("DELEGATE"); public ClsClassImpl(final PsiClassStub stub) { super(stub); @@ -540,6 +542,11 @@ public class ClsClassImpl extends ClsRepositoryPsiElement> imple @Nullable public PsiClass getSourceMirrorClass() { + PsiClass delegate = getUserData(DELEGATE_KEY); + if (delegate instanceof ClsClassImpl) { + return ((ClsClassImpl)delegate).getSourceMirrorClass(); + } + PsiElement parent = getParent(); final String name = getName(); if (parent instanceof PsiFile) {