This would include some simpler, and not so simple things like possibly:
--finalizing the prototype that suggests correction to mistyped names, like if the code is saying:
Stirng s;
javac could say "Cannot find Stirng, did you mean String?".
--there is a specific issue with error recovery of broken block lambdas, like:
class Test<T> {
T method(Function<T, T> f) {
int s = new Test<String>().method(i -> {}).length();
}
}
the ".method" won't be recognized as a reference to the method - this tends to cause issues for code completions. This is causing issues when implementing code completion using the javac's AST.
--javac's ClassReader has trouble reading broken classfiles, like (but there are many more):
https://bugs.openjdk.java.net/browse/JDK-8048352
--finalizing the prototype that suggests correction to mistyped names, like if the code is saying:
Stirng s;
javac could say "Cannot find Stirng, did you mean String?".
--there is a specific issue with error recovery of broken block lambdas, like:
class Test<T> {
T method(Function<T, T> f) {
int s = new Test<String>().method(i -> {}).length();
}
}
the ".method" won't be recognized as a reference to the method - this tends to cause issues for code completions. This is causing issues when implementing code completion using the javac's AST.
--javac's ClassReader has trouble reading broken classfiles, like (but there are many more):
https://bugs.openjdk.java.net/browse/JDK-8048352