RFR: 8303374: Compiler Implementation for Primitive types in patterns, instanceof, and switch (Preview) [v21]

Raffaello Giulietti rgiulietti at openjdk.org
Tue Oct 17 12:39:13 UTC 2023


On Mon, 16 Oct 2023 19:16:41 GMT, Aggelos Biboudis <abimpoudis at openjdk.org> wrote:

>> This is the proposed patch for Primitive types in patterns, instanceof, and switch (Preview).
>> 
>> Draft spec here: https://cr.openjdk.org/~abimpoudis/instanceof/jep443-20231010/specs/instanceof-jls.html
>
> Aggelos Biboudis has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Adjust javadoc on ExactConversionsSupport

src/java.base/share/classes/java/lang/runtime/ExactConversionsSupport.java line 40:

> 38:  *
> 39:  * @implNote Methods that describe a conversion check among unconditionally exact types
> 40:  * (they would return true) are ommited. Similarly, methods that describe a conversion check

Suggestion:

 * (they would return true) are omitted. Similarly, methods that describe a conversion check

src/java.base/share/classes/java/lang/runtime/ExactConversionsSupport.java line 54:

> 52:      * Exactness method from int to byte
> 53:      * @param n value
> 54:      * @return  true if the passed value can be converted exactly to the target type

Suggestion:

     * @return  true if and only if the passed value can be converted exactly to the target type

Without the "only if", the method could simply always return `true` while meeting the `@return` "contract" ;-)

Alternatively
Suggestion:

     * @return  whether or not the passed value can be converted exactly to the target type


Similarly for all other methods.

src/java.base/share/classes/java/lang/runtime/ExactConversionsSupport.java line 80:

> 78:      * specification of the {@linkplain Double} class.
> 79:      */
> 80:     public static boolean isIntToFloatExact(int n) { return n == (int)(float)n && n != Integer.MAX_VALUE; }

Suggestion:

    public static boolean isIntToFloatExact(int n) {
        return n == (int)(float)n && n != Integer.MAX_VALUE;
    }

Nit: what about formatting this on 3 lines?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15638#discussion_r1362005727
PR Review Comment: https://git.openjdk.org/jdk/pull/15638#discussion_r1362008344
PR Review Comment: https://git.openjdk.org/jdk/pull/15638#discussion_r1362043660


More information about the compiler-dev mailing list