Looks good for commit. Just a few notes

- The inconsistent use of <K,V> by WeakHashMap and <?,?> by the other Hash Map 
classes for their tables is a bit annoying but not a new problem. We should 
either make all of the maps use <K,V> (my preference) or all use <?,?>. There 
were lots of cases of introduced <?> and <?,?> that are clearly correct 
(equals(), contains() etc.). I understand that <K,V> doesn't really add 
anything the compiler or JVM can currently use but it would seem to make the 
source intent more obvious.

ComparableTimSort.java:

"UnnecessaryLocalVariable" is a non-standard warning annotation. I seem to 
recall that there was a previous discussion of how these would be handled. Just 
a reminder in-case some action needs to be taken on this.

EnumMap.java:

maskNull seemed to have the unchecked cast well bottlenecked. Why move the cast 
outside of unmaskNull() and thus require @SuppressWarnings("unchecked") in many 
other places. 

Mike


On Apr 10 2012, at 16:15 , Kurchi Hazra wrote:

> Hi Stuart,
> 
>   Please find the updated webrev here: 
> http://cr.openjdk.java.net/~khazra/7157893/webrev.01/
> 
> I hope to have included all the suggestions correctly. Also, note that I made 
> some new changes in Hashtable.java at lines 185, 355 and 910 to get rid of 
> some additional warnings.
> 
> Thanks,
> Kurchi
> 
> 
> On 4/6/2012 5:35 PM, Stuart Marks wrote:
>> Hi Kurchi, I think we've converged on the code changes. Please prepare and 
>> post another webrev for a final cross-check before pushing.
>> 
>> What follows is I think merely residual disagreement over the philosophy of 
>> how to handle generic casts vs reification. :-)
>> 
>> On 4/6/12 3:06 AM, Rémi Forax wrote:
>>> On 04/05/2012 11:04 PM, Stuart Marks wrote:
>>>> I'm somewhat skeptical of making code changes now based on potential future
>>>> benefits when/if generics become reified. This was discussed before; see
>>>> 
>>>> http://mail.openjdk.java.net/pipermail/jdk8-dev/2011-December/000454.html 
>>>> 
>>>> In that message, John Rose said "If the best practices have to change, then
>>>> we'll have to change that code again. Or maybe the retrofit strategy will
>>>> have to take account of the existing code idioms. In any case, we'll cross
>>>> that bridge when we get to it. (Coping with reification in this case is a
>>>> decision to make tomorrow, not today.)"
>>> 
>>> I disagree with John. The main issue with generics nowadays is that
>>> most of the people doesn't care about a cast to a type variable because
>>> everybody knows about erasure. So codes are written with an implementation
>>> glitch in mind.
>>> Frankly, I don't know if reification will appear (yes it's a kind of 
>>> magical)
>>> or not
>>> but I think it's a sloppy path to not consider all casts as equals.
>> 
>> In order to program effectively with generics, I think you have to 
>> understand erasure and its implications. It may have been an unfortunate 
>> choice, but erasure is part of the language and we have to deal with it and 
>> in some cases rely on it. I don't think it's merely an "implementation 
>> glitch."
>> 
>> The difficulty I have with reification is that while there are proposals 
>> floating around for how it could be done, nobody really knows how it will 
>> eventually turn out, nor whether it will actually be done. If it is 
>> eventually done, there will legal and illegal constructs, constructs that 
>> generate warnings, and perhaps a style guide for how to use reified generics 
>> properly.
>> 
>> Right now, we can *imagine* what these future rules might be, but it seems 
>> untenable to me to try to make today's code conform to those imaginary 
>> future rules, especially in the absence of tools to help support those rules.
>> 
>>> If unmaskNull return a V, the code of equals will upcast the value from 
>>> Object
>>> to V
>>> to just after downcast it from V to Object,
>>> I think it's better that unmask to return Object and upcast it to V when 
>>> it's
>>> necessary.
>> 
>> Certainly there are cases where there's a redundant downcast and upcast. In 
>> a reified world, will this be a significant expense? Really, I have no idea.
>> 
>> s'marks
> 
> -- 
> -Kurchi
> 

Reply via email to