RFR: JDK-8240658: Code completion not working for lambdas in method invocations that require type inference
Jan Lahoda
jan.lahoda at oracle.com
Fri Mar 13 12:20:48 UTC 2020
Hi,
When a method invocation requires type inference, and the user is in the
process of typing of a (block) lambda that is a parameter to the method
invocation, javac may not, in some cases, perform the type inference,
which then may lead to non working code completion in JShell (and
possibly other tools).
For example (in JShell):
Arrays.stream(new Integer[]{1}).forEach(v -> { System.err.println(v.
and press <tab> - this leads to no proposals currently, as the type of
"v" is not inferred.
The idea of the proposed patch is to improve the recovery in cases
significant for cases where the text is being typed, and allow type
inference in these cases. The type of "v" is then inferred, and the code
completion works.
Proposed patch:
http://cr.openjdk.java.net/~jlahoda/8240658/webrev.00/
JBS: https://bugs.openjdk.java.net/browse/JDK-8240658
Thanks,
Jan
More information about the kulla-dev
mailing list