Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSarika Sinha2021-05-27 11:23:58 +0000
committerSarika Sinha2021-06-08 16:07:32 +0000
commitb7c42a85634fa53d2e37501c1b50b8094579abc2 (patch)
tree7cfb77ab5b3f19e4dbbaab4bc9c4401b4cebb8c0
parent476c40081060040f56a6c6be1f2ca1d8f68f7e0f (diff)
downloadeclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.tar.gz
eclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.tar.xz
eclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.zip
breakpoint for record Change-Id: I850f48970095a74aab36fc4b817a2ff254839256 Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.debug/+/181096 Tested-by: JDT Bot <jdt-bot@eclipse.org> Reviewed-by: Sarika Sinha <sarika.sinha@in.ibm.com>
-rw-r--r--org.eclipse.jdt.debug.tests/java16_/a/b/c/RecordTests.java6
-rw-r--r--org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RecordBreakpointTests.java15
-rw-r--r--org.eclipse.jdt.debug.ui/.settings/.api_filters9
-rw-r--r--org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java8
4 files changed, 27 insertions, 11 deletions
diff --git a/org.eclipse.jdt.debug.tests/java16_/a/b/c/RecordTests.java b/org.eclipse.jdt.debug.tests/java16_/a/b/c/RecordTests.java
index c9a11866b..2253759f5 100644
--- a/org.eclipse.jdt.debug.tests/java16_/a/b/c/RecordTests.java
+++ b/org.eclipse.jdt.debug.tests/java16_/a/b/c/RecordTests.java
@@ -12,7 +12,11 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
package a.b.c;
-record R(int i, String s) {}
+record R(int i, String s) {
+ R( int i){
+ this(i, "hello");
+ }
+}
public class RecordTests {
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RecordBreakpointTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RecordBreakpointTests.java
index 4e651bd8c..c94095dee 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RecordBreakpointTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/RecordBreakpointTests.java
@@ -15,6 +15,7 @@ package org.eclipse.jdt.debug.tests.breakpoints;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.debug.core.IJavaClassPrepareBreakpoint;
+import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
public class RecordBreakpointTests extends AbstractDebugTest {
@@ -30,6 +31,7 @@ public class RecordBreakpointTests extends AbstractDebugTest {
protected IJavaProject getProjectContext() {
return get16_Project();
}
+
public void testRecordClassBreakpoint() throws Exception {
try {
@@ -43,4 +45,17 @@ public class RecordBreakpointTests extends AbstractDebugTest {
}
}
+ public void testRecordLineBreakpoint() throws Exception {
+
+ try {
+ // create a classLoad breakpoint to test
+ IJavaLineBreakpoint lineBreakpoint = createLineBreakpoint(17, "a.b.c.RecordTests");
+ assertEquals("wrong type name", "a.b.c.RecordTests", lineBreakpoint.getTypeName());
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ removeAllBreakpoints();
+ }
+ }
+
}
diff --git a/org.eclipse.jdt.debug.ui/.settings/.api_filters b/org.eclipse.jdt.debug.ui/.settings/.api_filters
index 0d462e645..2a6baacac 100644
--- a/org.eclipse.jdt.debug.ui/.settings/.api_filters
+++ b/org.eclipse.jdt.debug.ui/.settings/.api_filters
@@ -8,15 +8,6 @@
</message_arguments>
</filter>
</resource>
- <resource path="ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java" type="org.eclipse.jdt.internal.debug.ui.actions.ToggleBreakpointAdapter">
- <filter comment="For Java 15" id="640712815">
- <message_arguments>
- <message_argument value="IType"/>
- <message_argument value="ToggleBreakpointAdapter"/>
- <message_argument value="isRecord()"/>
- </message_arguments>
- </filter>
- </resource>
<resource path="ui/org/eclipse/jdt/internal/debug/ui/classpath/ClasspathEntry.java" type="org.eclipse.jdt.internal.debug.ui.classpath.ClasspathEntry">
<filter comment="Known illegal implementation" id="574619656">
<message_arguments>
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
index afed9b4fe..8b131a65c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
@@ -1283,8 +1283,14 @@ public class ToggleBreakpointAdapter implements IToggleBreakpointsTargetExtensio
if (e instanceof IMember) {
m = (IMember) e;
}
+ // Class breakpoint should be created if the offset was at the record component in the record definition
if (m != null && m.getParent() instanceof IType && ((IType) m.getParent()).isRecord()) {
- m = (IMember) m.getParent();
+ if (m instanceof IField) {
+ IField field = (IField)m;
+ if (field.isRecordComponent()) {
+ m = (IMember) field.getParent();
+ }
+ }
}
}
if (m != null) {

Back to the top