diff options
author | Gayan Perera | 2021-04-22 19:12:03 +0000 |
---|---|---|
committer | Sarika Sinha | 2021-04-28 05:24:39 +0000 |
commit | c4a957de6119306284b43a0eff99eccc810866f4 (patch) | |
tree | 84aaa25572e531f252b78d8e8c37700ffcff9b1d | |
parent | 4b4caaaf2e876091d5396582ef9722b4b6c876e9 (diff) | |
download | eclipse.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>
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 { |