Integrated: 8240658: Code completion not working for lambdas in method invocations that require type inference
Jan Lahoda
jlahoda at openjdk.java.net
Mon Sep 14 08:16:08 UTC 2020
On Mon, 7 Sep 2020 11:28:45 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:
> 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.
This pull request has now been integrated.
Changeset: 68da63dc
Author: Jan Lahoda <jlahoda at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/68da63dc
Stats: 708 lines in 9 files changed: 9 ins; 672 del; 27 mod
8240658: Code completion not working for lambdas in method invocations that require type inference
Reviewed-by: vromero
-------------
PR: https://git.openjdk.java.net/jdk/pull/50
More information about the compiler-dev
mailing list