From ed968400b6ca493445bb3b22e14f107be31918fb Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Wed, 6 Jul 2016 19:46:42 +0300 Subject: [PATCH] renderers do not resolve types in the context of decompiled class --- .../intellij/debugger/ui/tree/render/CachedEvaluator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CachedEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CachedEvaluator.java index 2aacb5c32cac..c60205e5db1b 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CachedEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/CachedEvaluator.java @@ -65,10 +65,13 @@ public abstract class CachedEvaluator { protected Cache initEvaluatorAndChildrenExpression(final Project project) { final Cache cache = new Cache(); try { - final PsiClass contextClass = DebuggerUtils.findClass(getClassName(), project, GlobalSearchScope.allScope(project)); + PsiClass contextClass = DebuggerUtils.findClass(getClassName(), project, GlobalSearchScope.allScope(project)); if(contextClass == null) { throw EvaluateExceptionUtil.CANNOT_FIND_SOURCE_CLASS; } + if (contextClass instanceof PsiCompiledElement) { + contextClass = (PsiClass)((PsiCompiledElement)contextClass).getMirror(); + } final PsiType contextType = DebuggerUtils.getType(getClassName(), project); cache.myPsiChildrenExpression = null; JavaCodeFragment codeFragment = myDefaultFragmentFactory.createCodeFragment(myReferenceExpression, contextClass, project);