I had a class that has within it a simple record:

 // class and interface names changed for my amusement
public abstract class ScottsAwesomeClass implements AmazingThings { 

    static record Location(int line, int column) {}

    // … a lot more stuff ...
}


I placed the cursor on the word “Location” and right-clicked to select the 
refactoring “Move Inner to Outer Level…”
Leaving the defaults in the dialog that appeared and hit “Refactor”.

The result was a new source file for a *class* named Location in the same 
package:

class Location {
}

Oh and the new Location.java file did NOT contain the configured license header.
And it is very much not at all the equivalent of:

record Location(int line, int column) {}

It also changed the references to the record, in a different source file for a 
class extending ScottsAwesomeClass, to fully qualified references to the new 
Location class, despite all classes/records being in the same package and the 
original reference using the ‘var’ keyword.

In other words, it went badly. ;-)

I’m guessing the refactoring has simply not been updated to handle records?


Scott


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
For additional commands, e-mail: dev-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to