+     enum BasicType {
+         L_TYPE('L', Object.class, Wrapper.OBJECT),  // all reference types
+         I_TYPE('I', int.class,    Wrapper.INT),
+         J_TYPE('J', long.class,   Wrapper.LONG),
+         F_TYPE('F', float.class,  Wrapper.FLOAT),
+         D_TYPE('D', double.class, Wrapper.DOUBLE),  // all primitive types
+         V_TYPE('V', void.class,   Wrapper.VOID);    // not valid in all 
contexts

I would suggest to not name them X_TYPE but give them meaningful names like 
Int, Float, Void.  The enum BasicType already infers that it’s a type.  If you 
think it’s not clear that it’s a type just use BasicType.Double in that places.

On Mar 24, 2014, at 9:29 AM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> 
wrote:

> Updated version:
> http://cr.openjdk.java.net/~vlivanov/8037210/webrev.03/
> 
> - changed the way how arrays of types are created:
>        static final BasicType[] ALL_TYPES = BasicType.values();
>        static final BasicType[] ARG_TYPES = Arrays.copyOf(ALL_TYPES, 
> ALL_TYPES.length-1);
> 
> - added a test for BasicType (LambdaFormTest.testBasicType).
> 
> Best regards,
> Vladimir Ivanov
> 
> On 3/22/14 2:08 AM, Vladimir Ivanov wrote:
>> John, thanks for the feedback.
>> 
>> Updated webrev:
>> http://cr.openjdk.java.net/~vlivanov/8037210/webrev.02
>> 
>> Also moved LambdaForm.testShortenSignature() into a stand-alone unit test.
>> 
>> Best regards,
>> Vladimir Ivanov
>> 
>> On 3/21/14 10:54 PM, John Rose wrote:
>>> On Mar 21, 2014, at 8:49 AM, Vladimir Ivanov
>>> <vladimir.x.iva...@oracle.com <mailto:vladimir.x.iva...@oracle.com>>
>>> wrote:
>>> 
>>>> Thanks for the feedback.
>>>> 
>>>> What do you think about the following:
>>>> http://cr.openjdk.java.net/~vlivanov/8037210/webrev.01/
>>> 
>>> That looks nice.  Strong typing; who woulda' thunk it.  :-)
>>> 
>>> The uses of ".ordinal()" are the extra cost relative to using just small
>>> integers.  They seem totally reasonable in the code.
>>> 
>>> I suggest either wrapping "ordinal" as something like "id" or else
>>> changing temp names like "id" to "ord", to reinforce the use of a common
>>> name.
>>> 
>>> Don't make the enum class public.  And especially don't make the mutable
>>> arrays public:
>>> 
>>> +        public static final BasicType[] ALL_TYPES = { L_TYPE, I_TYPE,
>>> J_TYPE, F_TYPE, D_TYPE, V_TYPE };
>>> +        public static final BasicType[] ARG_TYPES = { L_TYPE, I_TYPE,
>>> J_TYPE, F_TYPE, D_TYPE };
>>> 
>>> — John
>>> 
>>> P.S.  That would only be safe if we had (what we don't yet) a notion of
>>> frozen arrays like:
>>> 
>>> +        public static final BasicType final[] ALL_TYPES = { L_TYPE,
>>> I_TYPE, J_TYPE, F_TYPE, D_TYPE, V_TYPE };
>>> +        public static final BasicType final[] ARG_TYPES = { L_TYPE,
>>> I_TYPE, J_TYPE, F_TYPE, D_TYPE };
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> mlvm-dev mailing list
>>> mlvm-dev@openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to