Skip to content

Commit 17e4888

Browse files
committed
Attempt to fix tests - 2
1 parent a2af077 commit 17e4888

File tree

4 files changed

+27
-16
lines changed

4 files changed

+27
-16
lines changed

org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.eclipse.debug.ui.IValueDetailListener;
3434
import org.eclipse.jdt.core.IJavaProject;
3535
import org.eclipse.jdt.core.IType;
36+
import org.eclipse.jdt.core.compiler.IProblem;
3637
import org.eclipse.jdt.debug.core.IEvaluationRunnable;
3738
import org.eclipse.jdt.debug.core.IJavaArray;
3839
import org.eclipse.jdt.debug.core.IJavaArrayType;
@@ -466,8 +467,16 @@ private Expression getCompiledExpression(IJavaObject javaObject, IJavaDebugTarge
466467
.getCompiledExpression(snippet, javaObject);
467468
if (res != null) {
468469
Expression exp = new Expression(res, evaluationEngine);
469-
if (exp.getExpression().hasModuleConflicts()) {
470-
return null;
470+
if (exp.getExpression().hasErrors()) {
471+
boolean hasModuleError = false;
472+
for (int prblemID : exp.getExpression().getProblemIDs()) {
473+
if (prblemID == IProblem.ConflictingPackageFromModules || prblemID == IProblem.ConflictingPackageFromOtherModules) {
474+
hasModuleError = true;
475+
}
476+
}
477+
if (hasModuleError) {
478+
return null;
479+
}
471480
}
472481
fCacheMap.put(key, exp);
473482
return exp;

org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/ICompiledExpression.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
*******************************************************************************/
1414
package org.eclipse.jdt.debug.eval;
1515

16+
import java.util.List;
17+
1618
import org.eclipse.jdt.core.dom.Message;
1719

1820
/**
@@ -63,11 +65,11 @@ public interface ICompiledExpression {
6365
public String[] getErrorMessages();
6466

6567
/**
66-
* Returns whether the expression has any module conflicts or not.
68+
* Returns the list of <code>IProblem</code> id's of the compiled expression
6769
*
68-
* @return whether the expression has any module conflicts or not.
70+
* @return the list of IProblem id's of the compiled expression
6971
* @since 3.24
7072
*/
71-
public boolean hasModuleConflicts();
73+
public List<Integer> getProblemIDs();
7274

7375
}

org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -629,12 +629,11 @@ private ICompiledExpression createExpressionFromAST(String snippet, EvaluationSo
629629
runMethodError = true;
630630
DebugPlugin.log(new Status(IStatus.WARNING, DebugPlugin.getUniqueIdentifier(), "Compile error during code evaluation: " //$NON-NLS-1$
631631
+ problem.getMessage()));
632-
} else if (problemId == IProblem.ConflictingPackageFromModules || problemId == IProblem.ConflictingPackageFromOtherModules) {
633-
errorSequence.setModuleConflict(true);
634632
}
633+
errorSequence.addProblemID(problemId);
635634
}
636635
}
637-
if (snippetError || runMethodError || errorSequence.hasModuleConflicts()) {
636+
if (snippetError || runMethodError) {
638637
if (runMethodError) {
639638
errorSequence.addError(EvaluationEngineMessages.ASTEvaluationEngine_Evaluations_must_contain_either_an_expression_or_a_block_of_well_formed_statements_1);
640639
}

org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/instructions/InstructionSequence.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ public class InstructionSequence implements ICompiledExpression {
3030
private final List<String> fErrors;
3131
private final String fSnippet;
3232
private CoreException fException;
33-
private boolean fhasModuleErrors;
33+
private final List<Integer> fProblemIDs;
3434

3535
public InstructionSequence(String snippet) {
3636
fInstructions = new ArrayList<>(10);
3737
fErrors = new ArrayList<>();
3838
fSnippet = snippet;
39-
fhasModuleErrors = false;
39+
fProblemIDs = new ArrayList<>();
4040
}
4141

4242
/**
@@ -151,17 +151,18 @@ public int getEnd() {
151151
}
152152

153153
/**
154-
* Sets whether the expression has any module conflicting issues or not.
154+
* Adds the <code>IProblem<code> id of the error.
155155
*/
156-
public void setModuleConflict(boolean moduleConflict) {
157-
fhasModuleErrors = moduleConflict;
156+
public void addProblemID(int probID) {
157+
fProblemIDs.add(probID);
158158
}
159159

160160
/**
161-
* @see org.eclipse.jdt.debug.eval.ICompiledExpression#hasModuleConflicts()
161+
* @see org.eclipse.jdt.debug.eval.ICompiledExpression#getProblemIDs()
162162
*/
163163
@Override
164-
public boolean hasModuleConflicts() {
165-
return fhasModuleErrors;
164+
public List<Integer> getProblemIDs() {
165+
return fProblemIDs;
166166
}
167+
167168
}

0 commit comments

Comments
 (0)