diff --git a/java/java-tests/testData/refactoring/renameField/afterRecordNonPhysicalAccessor.java b/java/java-tests/testData/refactoring/renameField/afterRecordNonPhysicalAccessor.java new file mode 100644 index 000000000000..26f3490401b4 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameField/afterRecordNonPhysicalAccessor.java @@ -0,0 +1,7 @@ +package some.internal.pkg; + +record Hello( + int hello, + int bar, + int baz +) {} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/renameField/beforeRecordNonPhysicalAccessor.java b/java/java-tests/testData/refactoring/renameField/beforeRecordNonPhysicalAccessor.java new file mode 100644 index 000000000000..d140c4717a5e --- /dev/null +++ b/java/java-tests/testData/refactoring/renameField/beforeRecordNonPhysicalAccessor.java @@ -0,0 +1,7 @@ +package some.internal.pkg; + +record Hello( + int foo, + int bar, + int baz +) {} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/RenameFieldTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/RenameFieldTest.java index cf9e4051da95..096198a2cbb9 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/RenameFieldTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/RenameFieldTest.java @@ -4,12 +4,15 @@ package com.intellij.java.refactoring; import com.intellij.JavaTestUtil; import com.intellij.application.options.CodeStyle; import com.intellij.codeInsight.TargetElementUtil; +import com.intellij.codeInsight.template.impl.TemplateManagerImpl; +import com.intellij.codeInsight.template.impl.TemplateState; import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.pom.java.JavaFeature; import com.intellij.psi.PsiElement; import com.intellij.refactoring.rename.*; +import com.intellij.refactoring.rename.inplace.MemberInplaceRenameHandler; import com.intellij.refactoring.rename.naming.AutomaticRenamerFactory; import com.intellij.testFramework.IdeaTestUtil; import org.jetbrains.annotations.NonNls; @@ -112,6 +115,25 @@ public class RenameFieldTest extends LightRefactoringTestCase { doTest("baz"); } + public void testRecordNonPhysicalAccessor() { + String testName = getTestName(false); + configureByFile("/refactoring/renameField/before" + testName + ".java"); + TemplateManagerImpl.setTemplateTesting(getTestRootDisposable()); + PsiElement element = TargetElementUtil.findTargetElement(getEditor(), TargetElementUtil.ELEMENT_NAME_ACCEPTED); + + assertNotNull(element); + try { + new MemberInplaceRenameHandler().doRename(element, getEditor(), null); + type("hello"); + } + finally { + TemplateState state = TemplateManagerImpl.getTemplateState(getEditor()); + assertNotNull(state); + state.gotoEnd(false); + } + checkResultByFile("/refactoring/renameField/after" + testName + ".java"); + } + public void testFieldOnlyInImplicitClass() { IdeaTestUtil.withLevel(getModule(), JavaFeature.IMPLICIT_CLASSES.getMinimumLevel(), () -> { String suffix = getTestName(false);