Proposed refactoring: introduce JLS7 language features to core libs (original) (raw)
Stuart Marks stuart.marks at oracle.com
Wed May 2 21:57:29 UTC 2012
- Previous message: Proposed refactoring: introduce JLS7 language features to core libs
- Next message: hg: jdk8/tl/jdk: 7164570: (fs) WatchService queues CREATE event but not DELETE event for very short lived files [sol11]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 5/1/12 11:23 AM, Stefan Reich wrote:
Hi Stuart,
thank you for your reply. I sent a patch to the adopt-openjdk group that uses multi-catch for catch clauses with duplicate code blocks in the same try statement (message and patch attached). That patch covers all code in src/shared/classes. Martijn will help coordinating the effort with all individual component owners, since I don't know anyone over at the OpenJDK team.
OK great, glad to hear you're coordinating this with Martijn and the Adopt OpenJDK gang.
The string switch conversion is relatively straight forward, too. The more complicated case that you mention: String s; if("literal1".equals(s)) { } else if("literal2".equals(s)) { } else { // s is null or some other value }
is very rare in the OpenJDK code base. I saw only a handful of occurrences out of 95 files affected by this refactoring (in src/share/classes). If there is interest, I'd review the changes and create a patch, but I wanted to see how things are going with my first submission before investing more time.
I'm surprised there are that many occurrences in the JDK. It's good to know that the null issue comes up only rarely. In any case, it might make sense to see how the multi-catch changes go before inundating the group with too many patches.
How far are you with type inference? Are you going to write a NetBeans plugin?
By "type inference" I assume you mean "type inference for generic instance creation" -- which we usually refer to as diamond -- and not type inference in general.
There is already a NetBeans facility to do this kind of refactoring. It wasn't available when I was doing coinification work in 2010 and 2011. It was introduced in NetBeans 7.1 I believe. It's available under the Refactoring > Inspect and Transform dialog. Look for "Can Use Diamond" in the "JDK 1.5 and Later" category.
I'm not actively working on coinification, so if you (or somebody else in Adopt OpenJDK) wants to pursue diamond conversion, by all means go ahead.
s'marks
- Previous message: Proposed refactoring: introduce JLS7 language features to core libs
- Next message: hg: jdk8/tl/jdk: 7164570: (fs) WatchService queues CREATE event but not DELETE event for very short lived files [sol11]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]