Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGayan Perera2021-04-22 19:12:03 +0000
committerSarika Sinha2021-04-28 05:24:39 +0000
commitc4a957de6119306284b43a0eff99eccc810866f4 (patch)
tree84aaa25572e531f252b78d8e8c37700ffcff9b1d
parent4b4caaaf2e876091d5396582ef9722b4b6c876e9 (diff)
downloadeclipse.jdt.debug-c4a957de6119306284b43a0eff99eccc810866f4.tar.gz
eclipse.jdt.debug-c4a957de6119306284b43a0eff99eccc810866f4.tar.xz
eclipse.jdt.debug-c4a957de6119306284b43a0eff99eccc810866f4.zip
Revert "Bug 572782 - Fix evaluation errors due to recursive type bounds"
This reverts commit 4b4caaaf2e876091d5396582ef9722b4b6c876e9. Reason for revert: Doesn't solve all type of recursive type parameters Change-Id: I2a1d1a01fa553d70b7d22777d581431bbf4741b9 Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.debug/+/179621 Tested-by: Sarika Sinha <sarika.sinha@in.ibm.com> Reviewed-by: Sarika Sinha <sarika.sinha@in.ibm.com>
-rw-r--r--org.eclipse.jdt.debug.tests/java7/Bug572782.java24
-rw-r--r--org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java1
-rw-r--r--org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java2
-rw-r--r--org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEval17Test.java30
-rw-r--r--org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java12
5 files changed, 1 insertions, 68 deletions
diff --git a/org.eclipse.jdt.debug.tests/java7/Bug572782.java b/org.eclipse.jdt.debug.tests/java7/Bug572782.java
deleted file mode 100644
index ebf89d286..000000000
--- a/org.eclipse.jdt.debug.tests/java7/Bug572782.java
+++ /dev/null
@@ -1,24 +0,0 @@
-public class Bug572782 {
- static class Generic<T> {
-
- }
-
- static class ExtendedGeneric<T extends Generic<ExtendedGeneric<T>>> {
- public ExtendedGeneric() {
- super();
- System.out.println("created " + this);
- }
- }
-
- static class SimpleGeneric<T extends Generic<T>> {
- public SimpleGeneric() {
- super();
- System.out.println("created " + this);
- }
- }
-
- public static void main(String[] args) {
- new ExtendedGeneric();
- new SimpleGeneric();
- }
-} \ No newline at end of file
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
index 6054221df..dec4564bc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
@@ -439,7 +439,6 @@ public abstract class AbstractDebugTest extends TestCase implements IEvaluation
cfgs.add(createLaunchConfiguration(jp, LiteralTests17.LITERAL_TYPE_NAME));
cfgs.add(createLaunchConfiguration(jp, "ThreadNameChange"));
cfgs.add(createLaunchConfiguration(jp, "Bug567801"));
- cfgs.add(createLaunchConfiguration(jp, "Bug572782"));
loaded17 = true;
waitForBuild();
}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
index 9d072e6dc..b1b583aef 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
@@ -93,7 +93,6 @@ import org.eclipse.jdt.debug.tests.core.WorkingDirectoryTests;
import org.eclipse.jdt.debug.tests.core.WorkspaceSourceContainerTests;
import org.eclipse.jdt.debug.tests.eval.BlockStatementEvaluationTests;
import org.eclipse.jdt.debug.tests.eval.GeneralEvalTests;
-import org.eclipse.jdt.debug.tests.eval.GenericsEval17Test;
import org.eclipse.jdt.debug.tests.eval.GenericsEvalTests;
import org.eclipse.jdt.debug.tests.eval.LambdaVariableTest;
import org.eclipse.jdt.debug.tests.eval.SyntheticVariableTests;
@@ -331,7 +330,6 @@ public class AutomatedSuite extends DebugSuite {
//add the complete eval suite
addTest(new TestSuite(GeneralEvalTests.class));
- addTest(new TestSuite(GenericsEval17Test.class));
addTest(new TestSuite(BlockStatementEvaluationTests.class));
if (JavaProjectHelper.isJava8Compatible()) {
addTest(new TestSuite(LambdaVariableTest.class));
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEval17Test.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEval17Test.java
index c56d297d3..041a240bc 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEval17Test.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/GenericsEval17Test.java
@@ -15,7 +15,6 @@ package org.eclipse.jdt.debug.tests.eval;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.debug.core.IJavaObject;
import org.eclipse.jdt.debug.core.IJavaThread;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
@@ -40,35 +39,6 @@ public class GenericsEval17Test extends AbstractDebugTest {
assertEquals("value is not true", "true", value.getValueString());
}
- public void testEvaluate_Bug572782_RecursiveGeneric_ExpectedEvalVarValue() throws Exception {
- debugWithBreakpoint("Bug572782", 9);
- String snippet = "this";
- IValue value = doEval(javaThread, snippet);
-
- assertNotNull("value is null", value);
- assertTrue("No a IJavaObjectValue", value instanceof IJavaObject);
- assertEquals("value don't has the correct generic signature", "<T:LBug572782$Generic<LBug572782$ExtendedGeneric<TT;>;>;>Ljava/lang/Object;",
- ((IJavaObject) value).getGenericSignature());
- }
-
- public void testEvaluate_Bug572782_RecursiveGeneric_ExpectedEvalExpressionValue() throws Exception {
- debugWithBreakpoint("Bug572782", 9);
- String snippet = "1 + 2";
- IValue value = doEval(javaThread, snippet);
-
- assertNotNull("value is null", value);
- assertEquals("value is not 3", "3", value.getValueString());
- }
-
- public void testEvaluate_Bug572782_RecursiveGenericSimple_ExpectedEvalExpressionValue() throws Exception {
- debugWithBreakpoint("Bug572782", 16);
- String snippet = "1 + 2";
- IValue value = doEval(javaThread, snippet);
-
- assertNotNull("value is null", value);
- assertEquals("value is not 3", "3", value.getValueString());
- }
-
private void debugWithBreakpoint(String testClass, int lineNumber) throws Exception {
createLineBreakpoint(lineNumber, testClass);
javaThread = launchToBreakpoint(testClass);
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
index b0918cc54..a4e101b24 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
@@ -21,7 +21,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Stack;
import org.eclipse.jdt.core.Flags;
@@ -1625,16 +1624,7 @@ public class SourceBasedSourceGenerator extends ASTVisitor {
while (iterator.hasNext()) {
TypeParameter typeParameter = iterator.next();
String boundName = typeParameter.getName().getIdentifier();
- String tpString = typeParameter.toString();
-
- // check if the current parameter contains the current type declaration as a recursive type bound.
- boolean recursiveTypeBound = Optional.ofNullable(typeParameter.getParent()).filter(TypeDeclaration.class::isInstance)
- .map(td -> ((TypeDeclaration) td).getName().getIdentifier())
- .map(tn -> tpString.matches(String.format(".*%s\\<\s*%s\s*\\>.*", tn, boundName))).orElse(false); //$NON-NLS-1$
-
- if (!recursiveTypeBound) {
- newTypeParameters.put(boundName, tpString);
- }
+ newTypeParameters.put(boundName, typeParameter.toString());
}
fTypeParameterStack.push(newTypeParameters); // Push the new "scope"
} else {

Back to the top