diff options
author | Sarika Sinha | 2021-05-27 11:23:58 +0000 |
---|---|---|
committer | Sarika Sinha | 2021-06-08 16:07:32 +0000 |
commit | b7c42a85634fa53d2e37501c1b50b8094579abc2 (patch) | |
tree | 7cfb77ab5b3f19e4dbbaab4bc9c4401b4cebb8c0 | |
parent | 476c40081060040f56a6c6be1f2ca1d8f68f7e0f (diff) | |
download | eclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.tar.gz eclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.tar.xz eclipse.jdt.debug-b7c42a85634fa53d2e37501c1b50b8094579abc2.zip |
Bug 573618 - [16] Adding a line/method breakpoint creates a classY20210614-0420Y20210611-0900Y20210608-2330I20210620-1800I20210619-1800I20210618-1920I20210618-1800I20210617-1800I20210616-1800I20210615-1800I20210614-1800I20210613-1800I20210612-1800I20210611-2000I20210610-1850I20210609-1800I20210608-2130I20210608-1800I20210608-1300
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>
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) { |