RFR: JDK-8240658: Code completion not working for lambdas in method invocations that require type inference

Vicente Romero vicente.romero at oracle.com
Wed Mar 18 19:26:37 UTC 2020


looks good,
Vicente

On 3/13/20 8:20 AM, Jan Lahoda wrote:
> 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