Skip to content

Commit f9aa964

Browse files
Fix bug#973: breakpoints inside record don't work (#370)
1 parent e521ed1 commit f9aa964

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

com.microsoft.java.debug.plugin/src/main/java/com/microsoft/java/debug/plugin/internal/JdtSourceLookUpProvider.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ public class JdtSourceLookUpProvider implements ISourceLookUpProvider {
6161
private ISourceContainer[] sourceContainers = null;
6262

6363
private HashMap<String, Object> options = new HashMap<String, Object>();
64+
private String latestJavaVersion = null;
65+
private int latestASTLevel;
66+
67+
public JdtSourceLookUpProvider() {
68+
// Get the latest supported Java version by JDT tooling.
69+
this.latestJavaVersion = JavaCore.latestSupportedJavaVersion();
70+
// Get the mapped AST level for the latest Java version.
71+
Map<String, String> javaOptions = JavaCore.getOptions();
72+
javaOptions.put(JavaCore.COMPILER_SOURCE, latestJavaVersion);
73+
this.latestASTLevel = new AST(javaOptions).apiLevel();
74+
}
6475

6576
@Override
6677
public void initialize(IDebugAdapterContext context, Map<String, Object> props) {
@@ -101,8 +112,7 @@ public String[] getFullyQualifiedName(String uri, int[] lines, int[] columns) th
101112
return new String[0];
102113
}
103114

104-
// Currently the highest version the debugger supports is JavaSE-13 Edition (JLS13).
105-
final ASTParser parser = ASTParser.newParser(AST.JLS13);
115+
final ASTParser parser = ASTParser.newParser(this.latestASTLevel);
106116
parser.setResolveBindings(true);
107117
parser.setBindingsRecovery(true);
108118
parser.setStatementsRecovery(true);
@@ -131,9 +141,10 @@ public String[] getFullyQualifiedName(String uri, int[] lines, int[] columns) th
131141
* the user need specify the compiler options explicitly.
132142
*/
133143
Map<String, String> javaOptions = JavaCore.getOptions();
134-
javaOptions.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_13);
135-
javaOptions.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_13);
136-
javaOptions.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_13);
144+
javaOptions.put(JavaCore.COMPILER_SOURCE, this.latestJavaVersion);
145+
javaOptions.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, this.latestJavaVersion);
146+
javaOptions.put(JavaCore.COMPILER_COMPLIANCE, this.latestJavaVersion);
147+
javaOptions.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED);
137148
parser.setCompilerOptions(javaOptions);
138149
astUnit = (CompilationUnit) parser.createAST(null);
139150
} else {

0 commit comments

Comments
 (0)