RFR: 8319196: ExecutableElement.getReceiverType doesn't return receiver types for methods loaded from bytecode [v5]
Liam Miller-Cushon
cushon at openjdk.org
Mon Nov 6 23:28:38 UTC 2023
On Mon, 6 Nov 2023 23:14:02 GMT, Liam Miller-Cushon <cushon at openjdk.org> wrote:
>> Hello,
>>
>> Please consider this fix for [JDK-8319196: ExecutableElement.getReceiverType doesn't return receiver types for methods loaded from bytecode](https://bugs.openjdk.org/browse/JDK-8319196).
>>
>> As discussed in [the accompanying CSR](https://bugs.openjdk.org/browse/JDK-8319330), `ExecutableElement.getReceiverType()` and `ExecutableType.getReceiverType()` currently returns `NoType` unless the receiver parameter syntax was present in source, which also means that `getReceiverType()` doesn't work for methods loaded from class files.
>>
>> This fix updates the implementation to return the implicit receiver type of methods that do not explicitly declare a receiver parameter in source, including for methods that were loaded from class files.
>
> Liam Miller-Cushon has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
>
> - Merge branch 'master' into JDK-8319196
> - Only infer receiver types during class reading if receiver type annotations are present
> - Add a test for annotated receiver types
> - Merge branch 'master' into JDK-8319196
> - Update src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java
>
> Co-authored-by: liach <7806504+liach at users.noreply.github.com>
> - Add a null check, update affected tests
> - 8319196: ExecutableElement.getReceiverType doesn't return receiver types for methods loaded from bytecode
I have tentatively updated this to only fill in a receiver type during class reading if type annotations are present on the receiver, based on [discussion in the CSR](https://bugs.openjdk.org/browse/JDK-8319330?focusedId=14624193&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14624193).
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16482#issuecomment-1797023539
More information about the compiler-dev
mailing list