correctly resolve this type in user expressions
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 11 Aug 2016 09:06:42 +0000 (12:06 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 11 Aug 2016 09:06:42 +0000 (12:06 +0300)
java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/UserExpressionDescriptorImpl.java

index 4cdb09d9d6ea800928dbfed7ac833c52eceb25be..9b9e4caa1b85aebe2b6e09ea0c89bbb511ecdca1 100644 (file)
@@ -31,6 +31,7 @@ import com.intellij.debugger.ui.tree.UserExpressionDescriptor;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Pair;
 import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.psi.JavaCodeFragment;
 import com.intellij.psi.PsiClass;
 import com.intellij.psi.PsiCodeFragment;
 import com.intellij.psi.PsiType;
@@ -72,7 +73,11 @@ public class UserExpressionDescriptorImpl extends EvaluationDescriptor implement
     if (psiClassAndType.first == null) {
       throw EvaluateExceptionUtil.createEvaluateException(DebuggerBundle.message("evaluation.error.invalid.type.name", myTypeName));
     }
-    return createCodeFragment(psiClassAndType.first);
+    PsiCodeFragment fragment = createCodeFragment(psiClassAndType.first);
+    if (fragment instanceof JavaCodeFragment) {
+      ((JavaCodeFragment)fragment).setThisType(psiClassAndType.second);
+    }
+    return fragment;
   }
 
   public ValueDescriptorImpl getParentDescriptor() {