import com.intellij.openapi.compiler.ClassObject;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
+import com.intellij.openapi.util.registry.Registry;
import com.intellij.psi.PsiElement;
import com.intellij.refactoring.extractMethodObject.ExtractLightMethodObjectHandler;
import com.sun.jdi.ClassLoaderReference;
EvaluationContext context,
DebugProcess process,
ClassLoaderReference classLoader) throws EvaluateException {
- boolean useMagicAccessorImpl = version != null && !version.isAtLeast(JavaSdkVersion.JDK_1_9);
+ boolean useMagicAccessorImpl = version != null && !version.isAtLeast(JavaSdkVersion.JDK_1_9) &&
+ Registry.is("debugger.compiling.evaluator.magic.accessor");
for (ClassObject cls : classes) {
if (cls.getPath().contains(GEN_CLASS_NAME)) {
if (Registry.is("debugger.compiling.evaluator") && psiContext != null) {
return ApplicationManager.getApplication().runReadAction((ThrowableComputable<ExpressionEvaluator, EvaluateException>)() -> {
try {
- boolean useReflection = !Registry.is("debugger.compiling.evaluator.magic.accessor", true);
+ boolean useReflection = Registry.is("debugger.compiling.evaluator.reflection.access.with.java8");
XDebugSession currentSession = XDebuggerManager.getInstance(project).getCurrentSession();
if (!useReflection && currentSession != null) {
XSuspendContext suspendContext = currentSession.getSuspendContext();
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
+import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleManager;
PsiStatement outStatement = elementFactory.createStatementFromText("System.out.println(" + outputVariables + ");", anchor);
outStatement = (PsiStatement)container.addAfter(outStatement, elementsCopy[elementsCopy.length - 1]);
- if (!useReflection) {
+ if (Registry.is("debugger.compiling.evaluator.magic.accessor") && !useReflection) {
copy.accept(new JavaRecursiveElementWalkingVisitor() {
private void makePublic(PsiMember method) {
if (method.hasModifierProperty(PsiModifier.PRIVATE)) {
debugger.batch.evaluation=false
debugger.compiling.evaluator=true
debugger.compiling.evaluator.magic.accessor=false
+debugger.compiling.evaluator.reflection.access.with.java8=true
debugger.watches.in.variables=true
debugger.auto.fetch.icons=true
debugger.close.dialog.on.navigate=true