RFR: 8318160: javac does not reject private method reference with type-variable receiver [v6]

Vicente Romero vromero at openjdk.org
Tue Oct 17 23:15:12 UTC 2023


> Please review this PR which is fixing a long standing regression in javac. Basically javac is accepting code like:
> 
> 
> import java.util.function.*;
> 
> class Test {
>     private String asString() {
>         return "bar";
>     }
> 
>     static <T extends Test> Function<T, String> foo() {
>         return T::asString;
>     }
> }
> 
> 
> this code should be rejected on the grounds that ::asString is a private method in class `Test` and thus not a member of type variable `T`
> 
> TIA

Vicente Romero has updated the pull request incrementally with one additional commit since the last revision:

  alternative implementation

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/16210/files
  - new: https://git.openjdk.org/jdk/pull/16210/files/73377326..43f5fb74

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=16210&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=16210&range=04-05

  Stats: 37 lines in 4 files changed: 23 ins; 7 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/16210.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16210/head:pull/16210

PR: https://git.openjdk.org/jdk/pull/16210


More information about the compiler-dev mailing list