From 978ba17c85ca1ce77b29cdbd7e4d4f00d230a8e5 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Tue, 12 Apr 2016 18:53:14 +0300 Subject: [PATCH] do not highlight errors in return statements in debugger code fragments --- .../engine/evaluation/DefaultCodeFragmentFactory.java | 2 ++ .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java index 830ecbb70a63..a69cd899f960 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/DefaultCodeFragmentFactory.java @@ -18,6 +18,7 @@ package com.intellij.debugger.engine.evaluation; import com.intellij.codeInsight.completion.CompletionParameters; import com.intellij.codeInsight.completion.CompletionService; import com.intellij.codeInsight.completion.JavaCompletionUtil; +import com.intellij.codeInsight.daemon.impl.analysis.HighlightUtil; import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.codeinsight.RuntimeTypeEvaluator; import com.intellij.debugger.engine.evaluation.expression.EvaluatorBuilder; @@ -75,6 +76,7 @@ public class DefaultCodeFragmentFactory extends CodeFragmentFactory { fragment.setVisibilityChecker(JavaCodeFragment.VisibilityChecker.EVERYTHING_VISIBLE); //noinspection HardCodedStringLiteral fragment.putUserData(KEY, "DebuggerComboBoxEditor.IS_DEBUGGER_EDITOR"); + fragment.putUserData(HighlightUtil.DISABLE_RETURN_CHECK_IN_CODE_FRAGMENT, true); fragment.putCopyableUserData(JavaCompletionUtil.DYNAMIC_TYPE_EVALUATOR, new PairFunction() { public PsiType fun(PsiExpression expression, CompletionParameters parameters) { if (!RuntimeTypeEvaluator.isSubtypeable(expression)) { diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index c061dba79582..0cda6140d70e 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -87,6 +87,8 @@ public class HighlightUtil extends HighlightUtilBase { @NonNls private static final String SERIAL_PERSISTENT_FIELDS_FIELD_NAME = "serialPersistentFields"; private static final QuickFixFactory QUICK_FIX_FACTORY = QuickFixFactory.getInstance(); + public static final Key DISABLE_RETURN_CHECK_IN_CODE_FRAGMENT = Key.create("DISABLE_RETURN_CHECK_IN_CODE_FRAGMENT"); + private HighlightUtil() { } static { @@ -594,6 +596,9 @@ public class HighlightUtil extends HighlightUtilBase { } parent = parent.getParent(); } + if (parent instanceof PsiCodeFragment && parent.getUserData(DISABLE_RETURN_CHECK_IN_CODE_FRAGMENT) != null) { + return null; + } String description; HighlightInfo errorResult = null; if (method == null && lambda != null) {