From 232f33f2ec4e614c7ed830b97cc53a2fcc7b9f82 Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Tue, 2 Sep 2025 12:20:55 +0200 Subject: [PATCH] [xml dom] refactoring: introduce public DomFileDescription::registerReferenceInjectorTestAccessor method to use in tests (IJPL-205216) This is needed to avoid IllegalAccessError if tests are loaded by a different classloader and to allow enabling 'Suspicious Package-Private Access' for tests as well. GitOrigin-RevId: 9a61f20ebc4ca2ed7a825ff5fecd74736ca69c57 --- .../src/com/intellij/util/xml/DomFileDescription.java | 10 +++++++--- .../com/intellij/util/xml/DomFileDescriptionTest.java | 2 +- .../intellij/util/xml/DomReferenceInjectorTest.java | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java b/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java index ea5c7f80ad91..2725a47509e3 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java @@ -14,9 +14,7 @@ import com.intellij.util.NotNullFunction; import com.intellij.util.SmartList; import com.intellij.util.containers.ConcurrentFactoryMap; import com.intellij.util.xml.highlighting.DomElementsAnnotator; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.*; import javax.swing.*; import java.lang.reflect.Type; @@ -121,6 +119,12 @@ public class DomFileDescription { protected final void registerReferenceInjector(DomReferenceInjector injector) { myInjectors.add(injector); } + + @TestOnly + @ApiStatus.Internal + public void registerReferenceInjectorTestAccessor(DomReferenceInjector injector) { + registerReferenceInjector(injector); + } public List getReferenceInjectors() { return myInjectors; diff --git a/xml/dom-tests/tests/com/intellij/util/xml/DomFileDescriptionTest.java b/xml/dom-tests/tests/com/intellij/util/xml/DomFileDescriptionTest.java index 9ec46740656e..d1ed650a5c28 100644 --- a/xml/dom-tests/tests/com/intellij/util/xml/DomFileDescriptionTest.java +++ b/xml/dom-tests/tests/com/intellij/util/xml/DomFileDescriptionTest.java @@ -208,7 +208,7 @@ public class DomFileDescriptionTest extends DomHardCoreTestCase { getDomManager().registerFileDescription(description, myDisposable); DomFileElementImpl fileElement = getDomManager().getFileElement(file, FooElement.class); assertNotNull(fileElement); - assertEquals("a", fileElement.getFileDescription().myRootTagName); + assertEquals("a", fileElement.getFileDescription().getRootTagName()); } public interface AbstractElement extends GenericDomValue { diff --git a/xml/dom-tests/tests/com/intellij/util/xml/DomReferenceInjectorTest.java b/xml/dom-tests/tests/com/intellij/util/xml/DomReferenceInjectorTest.java index a469b0a9893b..3e3ad61eba22 100644 --- a/xml/dom-tests/tests/com/intellij/util/xml/DomReferenceInjectorTest.java +++ b/xml/dom-tests/tests/com/intellij/util/xml/DomReferenceInjectorTest.java @@ -93,7 +93,7 @@ public class DomReferenceInjectorTest extends DomHardCoreTestCase { } private void registerInjectorFor(DomElement element, PsiElement targetElement) { - DomUtil.getFileElement(element).getFileDescription().registerReferenceInjector(new MyInjector(targetElement)); + DomUtil.getFileElement(element).getFileDescription().registerReferenceInjectorTestAccessor(new MyInjector(targetElement)); } public interface MyElement extends DomElement {