RFR: 8240658: Code completion not working for lambdas in method invocations that require type inference [v3]

Jan Lahoda jlahoda at openjdk.java.net
Fri Sep 11 13:51:21 UTC 2020


> 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.

Jan Lahoda has updated the pull request incrementally with one additional commit since the last revision:

  Moving the TestGetTypeMirrorReference test into a separate folder.

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/50/files
  - new: https://git.openjdk.java.net/jdk/pull/50/files/32845ddb..988f85be

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=50&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=50&range=01-02

  Stats: 15 lines in 2 files changed: 14 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/50.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/50/head:pull/50

PR: https://git.openjdk.java.net/jdk/pull/50


More information about the compiler-dev mailing list