Skip to content

Refactor "Move Inner to Outer level and PullUp" on record drops the record details #7044

@homberghp

Description

@homberghp

Apache NetBeans version

Apache NetBeans 20

What happened

When you have an inner record like so;

package example;
import java.time.LocalDate;
public class Example {
    public record Studentje(int id, String fullName, LocalDate dob){}
}

and for some reason you want it to be an outer class in its own file, then
refactor Move Inner to Outer level, then the result in the that file is

package example;
import java.time.LocalDate;
public class Studentje {
}

dropping all record details.

Language / Project Type / NetBeans Component

java editor

How to reproduce

make class as above with inner record and apply refactoring Move Inner to.
The resulting class is no longer a record, the record component parameters including parenthesis are dropped,
but the import (LocalDate) is handed over, but is useless because of the stripping.

Did this work correctly in an earlier version?

No / Don't know

Operating System

ubuntu 24.04, Windows 11

JDK

java 21, Java 17 at least

Apache NetBeans packaging

Apache NetBeans binary zip

Anything else

occurs always.

Are you willing to submit a pull request?

Yes, I am at it, but stuck on the steps from parsetree to java code and possibly templates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EditorJava[ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)kind:bugBug report or fix

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions