diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java b/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java index 23ad1ecaa27c..71926cff7fd8 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java @@ -281,7 +281,7 @@ public final class JVMNameUtil { if (PsiUtil.isLocalOrAnonymousClass(aClass)) { return null; } - if (aClass instanceof PsiUnnamedClass a) { + if (aClass instanceof PsiImplicitClass a) { return ClassUtil.getJVMClassName(a); } String name = aClass.getName(); diff --git a/java/execution/impl/src/com/intellij/execution/application/AbstractApplicationConfigurationProducer.java b/java/execution/impl/src/com/intellij/execution/application/AbstractApplicationConfigurationProducer.java index 76c45edd32b8..5f05109a3d1b 100644 --- a/java/execution/impl/src/com/intellij/execution/application/AbstractApplicationConfigurationProducer.java +++ b/java/execution/impl/src/com/intellij/execution/application/AbstractApplicationConfigurationProducer.java @@ -59,8 +59,8 @@ public abstract class AbstractApplicationConfigurationProducer getValidModules() { diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationRunLineMarkerProvider.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationRunLineMarkerProvider.java index 622d117124e5..96240972f18e 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationRunLineMarkerProvider.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationRunLineMarkerProvider.java @@ -22,7 +22,6 @@ import java.util.Objects; import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; - public class ApplicationRunLineMarkerProvider extends RunLineMarkerContributor { private final static Comparator mainCandidateComparator = (o1, o2) -> { boolean isO1Static = o1.hasModifierProperty(PsiModifier.STATIC); @@ -59,7 +58,7 @@ public class ApplicationRunLineMarkerProvider extends RunLineMarkerContributor { else if (parent instanceof PsiMethod method) { if (!"main".equals(method.getName()) || !PsiMethodUtil.isMainMethod(method)) return null; PsiClass containingClass = method.getContainingClass(); - if (!(containingClass instanceof PsiUnnamedClass) && PsiTreeUtil.getParentOfType(containingClass, PsiUnnamedClass.class) != null) return null; + if (!(containingClass instanceof PsiImplicitClass) && PsiTreeUtil.getParentOfType(containingClass, PsiImplicitClass.class) != null) return null; if (containingClass == null || PsiUtil.isLocalOrAnonymousClass(containingClass)) return null; if (containingClass.isInterface() && !method.hasModifierProperty(PsiModifier.STATIC)) return null; Optional mainMethod = diff --git a/java/execution/impl/src/com/intellij/execution/application/JavaApplicationSettingsEditor.java b/java/execution/impl/src/com/intellij/execution/application/JavaApplicationSettingsEditor.java index 5a53c5bc5df0..0a3685928df2 100644 --- a/java/execution/impl/src/com/intellij/execution/application/JavaApplicationSettingsEditor.java +++ b/java/execution/impl/src/com/intellij/execution/application/JavaApplicationSettingsEditor.java @@ -31,11 +31,11 @@ import static com.intellij.execution.ui.CommandLinePanel.setMinimumWidth; public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase { private SettingsEditorFragment myMainClassFragment; - private final boolean myInitialIsUnnamedClass; + private final boolean myInitialIsImplicitClass; public JavaApplicationSettingsEditor(ApplicationConfiguration configuration) { super(configuration); - myInitialIsUnnamedClass = configuration.isUnnamedClassConfiguration(); + myInitialIsImplicitClass = configuration.isImplicitClassConfiguration(); } @Override @@ -53,14 +53,14 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< configuration -> configuration.getOptions().isIncludeProvidedScope(), (configuration, value) -> configuration.getOptions().setIncludeProvidedScope(value))); fragments.add(SettingsEditorFragment.createTag("unnamed.class", - ExecutionBundle.message("application.configuration.is.unnamed.class"), + ExecutionBundle.message("application.configuration.is.implicit.class"), ExecutionBundle.message("group.java.options"), configuration -> { - return configuration.isUnnamedClassConfiguration(); + return configuration.isImplicitClassConfiguration(); }, (configuration, value) -> { - configuration.setUnnamedClassConfiguration(value); - updateMainClassFragment(configuration.isUnnamedClassConfiguration()); + configuration.setImplicitClassConfiguration(value); + updateMainClassFragment(configuration.isImplicitClassConfiguration()); })); fragments.add(commonParameterFragments.programArguments()); fragments.add(new TargetPathFragment<>()); @@ -75,8 +75,8 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< private class MainClassPanel extends JPanel { private final ClassEditorField myClassEditorField; - private final TextFieldWithAutoCompletion myUnnamedClassField; - private boolean myIsUnnamedClassConfiguration; + private final TextFieldWithAutoCompletion myImplicitClassField; + private boolean myIsImplicitClassConfiguration; private MainClassPanel(ModuleClasspathCombo classpathCombo) { super(new GridBagLayout()); @@ -91,33 +91,33 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< String placeholder = ExecutionBundle.message("application.configuration.main.class.placeholder"); myClassEditorField.setPlaceholder(placeholder); myClassEditorField.getAccessibleContext().setAccessibleName(placeholder); - myClassEditorField.setVisible(!myIsUnnamedClassConfiguration); + myClassEditorField.setVisible(!myIsImplicitClassConfiguration); setMinimumWidth(myClassEditorField, 300); GridBag constraints = new GridBag().setDefaultFill(GridBagConstraints.HORIZONTAL).setDefaultWeightX(1.0); add(myClassEditorField, constraints.nextLine()); - myUnnamedClassField = new TextFieldWithAutoCompletion<>(getProject(), new StringsCompletionProvider(null, AllIcons.FileTypes.JavaClass) { + myImplicitClassField = new TextFieldWithAutoCompletion<>(getProject(), new StringsCompletionProvider(null, AllIcons.FileTypes.JavaClass) { @Override public @NotNull Collection getItems(String prefix, boolean cached, CompletionParameters parameters) { return DumbService.isDumb(getProject()) ? List.of() - : ReadAction.compute(() -> StubIndex.getInstance().getAllKeys(JavaStubIndexKeys.UNNAMED_CLASSES, getProject())); + : ReadAction.compute(() -> StubIndex.getInstance().getAllKeys(JavaStubIndexKeys.IMPLICIT_CLASSES, getProject())); } }, true, null); - CommonParameterFragments.setMonospaced(myUnnamedClassField); - String unnamedClassPlaceholder = ExecutionBundle.message("application.configuration.main.unnamed.class.placeholder"); - myUnnamedClassField.setVisible(myIsUnnamedClassConfiguration); - myUnnamedClassField.setPlaceholder(unnamedClassPlaceholder); - myUnnamedClassField.getAccessibleContext().setAccessibleName(unnamedClassPlaceholder); - setMinimumWidth(myUnnamedClassField, 300); - add(myUnnamedClassField, constraints.nextLine()); + CommonParameterFragments.setMonospaced(myImplicitClassField); + String implicitClassPlaceholder = ExecutionBundle.message("application.configuration.main.unnamed.class.placeholder"); + myImplicitClassField.setVisible(myIsImplicitClassConfiguration); + myImplicitClassField.setPlaceholder(implicitClassPlaceholder); + myImplicitClassField.getAccessibleContext().setAccessibleName(implicitClassPlaceholder); + setMinimumWidth(myImplicitClassField, 300); + add(myImplicitClassField, constraints.nextLine()); } public EditorTextField getEditorTextField() { return myClassEditorField; } void setClassName(String name) { - if (myIsUnnamedClassConfiguration) { - myUnnamedClassField.setText(name); + if (myIsImplicitClassConfiguration) { + myImplicitClassField.setText(name); } else { myClassEditorField.setClassName(name); @@ -125,31 +125,31 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< } String getClassName() { - return myIsUnnamedClassConfiguration ? myUnnamedClassField.getText() : myClassEditorField.getClassName(); + return myIsImplicitClassConfiguration ? myImplicitClassField.getText() : myClassEditorField.getClassName(); } boolean isReadyForApply() { - return myIsUnnamedClassConfiguration || myClassEditorField.isReadyForApply(); + return myIsImplicitClassConfiguration || myClassEditorField.isReadyForApply(); } - void setUnnamedClassConfiguration(boolean isUnnamedClassConfiguration) { - myIsUnnamedClassConfiguration = isUnnamedClassConfiguration; + void setImplicitClassConfiguration(boolean isImplicitClassConfiguration) { + myIsImplicitClassConfiguration = isImplicitClassConfiguration; if (myClassEditorField != null) { - myClassEditorField.setVisible(!isUnnamedClassConfiguration); - myUnnamedClassField.setVisible(isUnnamedClassConfiguration); + myClassEditorField.setVisible(!isImplicitClassConfiguration); + myImplicitClassField.setVisible(isImplicitClassConfiguration); } } List getValidation(ApplicationConfiguration configuration) { return Collections.singletonList(RuntimeConfigurationException.validate( - myIsUnnamedClassConfiguration ? myUnnamedClassField : myClassEditorField, + myIsImplicitClassConfiguration ? myImplicitClassField : myClassEditorField, () -> { if (!isDefaultSettings()) configuration.checkClass(); } )); } JComponent getEditorComponent() { - if (myIsUnnamedClassConfiguration) { - return myUnnamedClassField; + if (myIsImplicitClassConfiguration) { + return myImplicitClassField; } else { Editor editor = myClassEditorField.getEditor(); return editor == null ? myClassEditorField : editor.getContentComponent(); @@ -158,7 +158,7 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< @Override public synchronized void addMouseListener(MouseListener l) { - myUnnamedClassField.addMouseListener(l); + myImplicitClassField.addMouseListener(l); myClassEditorField.addMouseListener(l); } } @@ -179,15 +179,15 @@ public final class JavaApplicationSettingsEditor extends JavaSettingsEditorBase< myMainClassFragment.setRemovable(false); myMainClassFragment.setEditorGetter(field -> field.getEditorComponent()); myMainClassFragment.setValidation((configuration) -> mainClassPanel.getValidation(configuration)); - updateMainClassFragment(myInitialIsUnnamedClass); + updateMainClassFragment(myInitialIsImplicitClass); return myMainClassFragment; } - private void updateMainClassFragment(boolean isUnnamedClass) { + private void updateMainClassFragment(boolean isImplicitClass) { if (myMainClassFragment == null) return; - myMainClassFragment.component().setUnnamedClassConfiguration(isUnnamedClass); + myMainClassFragment.component().setImplicitClassConfiguration(isImplicitClass); - if (isUnnamedClass) { + if (isImplicitClass) { myMainClassFragment.setHint(ExecutionBundle.message("application.configuration.main.class.unnamed.hint")); } else { myMainClassFragment.setHint(ExecutionBundle.message("application.configuration.main.class.hint")); diff --git a/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt b/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt index 2854af19ef0c..cdb93c9ce7a3 100644 --- a/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt +++ b/java/execution/impl/src/com/intellij/execution/application/JvmMainMethodRunConfigurationOptions.kt @@ -20,7 +20,7 @@ open class JvmMainMethodRunConfigurationOptions : JvmConfigurationOptions() { open var isIncludeProvidedScope by property(false) @get:OptionTag("UNNAMED_CLASS_CONFIGURATION") - open var isUnnamedClassConfiguration by property(false) + open var isImplicitClassConfiguration by property(false) @get:OptionTag("PASS_PARENT_ENVS") var isPassParentEnv by property(true) diff --git a/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties b/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties index de0cba9c28fe..ee17bfbf1234 100644 --- a/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties +++ b/java/java-analysis-api/resources/messages/JavaAnalysisBundle.properties @@ -136,7 +136,7 @@ feature.record.patterns.in.for.each=Record patterns in for-each loops feature.enum.qualified.name.in.switch=Qualified enum as a constant in switch feature.string.templates=String templates feature.unnamed.vars=Unnamed patterns and variables -feature.unnamed.classes=Unnamed classes +feature.implicit.classes=Implicitly declared classes find.searching.for.references.to.class.progress=Searching for references to class {0}... find.usages.panel.title.derived.classes.cap=Derived classes diff --git a/java/java-analysis-api/src/com/intellij/codeInsight/intention/QuickFixFactory.java b/java/java-analysis-api/src/com/intellij/codeInsight/intention/QuickFixFactory.java index 8e7e9bb75332..40f85c19742d 100644 --- a/java/java-analysis-api/src/com/intellij/codeInsight/intention/QuickFixFactory.java +++ b/java/java-analysis-api/src/com/intellij/codeInsight/intention/QuickFixFactory.java @@ -518,7 +518,7 @@ public abstract class QuickFixFactory { /** * @deprecated error elements are not provided anymore for members declared out of class. - * Now they are members of an unnamed class and can be moved as usual members. + * Now they are members of an implicitly declared class and can be moved as usual members. */ @Deprecated public abstract @NotNull IntentionAction createMoveMemberIntoClassFix(@NotNull PsiErrorElement errorElement); @@ -640,5 +640,5 @@ public abstract class QuickFixFactory { @ApiStatus.Experimental @NotNull - public abstract IntentionAction createAddMainMethodFix(@NotNull PsiUnnamedClass unnamedClass); + public abstract IntentionAction createAddMainMethodFix(@NotNull PsiImplicitClass implicitClass); } \ No newline at end of file diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index 1cfd50eb2f4c..72c1e0c300cc 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -1350,19 +1350,19 @@ public final class HighlightClassUtil { return null; } - static HighlightInfo.Builder checkUnnamedClassMember(@NotNull PsiMember member, @NotNull LanguageLevel languageLevel, - @NotNull PsiFile psiFile) { - if (!(member.getContainingClass() instanceof PsiUnnamedClass unnamedClass)) { + static HighlightInfo.Builder checkImplicitClassMember(@NotNull PsiMember member, @NotNull LanguageLevel languageLevel, + @NotNull PsiFile psiFile) { + if (!(member.getContainingClass() instanceof PsiImplicitClass implicitClass)) { return null; } - HighlightInfo.Builder builder = HighlightUtil.checkFeature(member, HighlightingFeature.UNNAMED_CLASSES, languageLevel, psiFile); + HighlightInfo.Builder builder = HighlightUtil.checkFeature(member, HighlightingFeature.IMPLICIT_CLASSES, languageLevel, psiFile); if (builder == null) return null; - if (!(member instanceof PsiClass) && !HighlightingFeature.UNNAMED_CLASSES.isAvailable(member)) { - boolean hasClassToRelocate = PsiTreeUtil.findChildOfType(unnamedClass, PsiClass.class) != null; + if (!(member instanceof PsiClass) && !HighlightingFeature.IMPLICIT_CLASSES.isAvailable(member)) { + boolean hasClassToRelocate = PsiTreeUtil.findChildOfType(implicitClass, PsiClass.class) != null; if (hasClassToRelocate) { - MoveMembersIntoClassFix fix = new MoveMembersIntoClassFix(unnamedClass); + MoveMembersIntoClassFix fix = new MoveMembersIntoClassFix(implicitClass); builder.registerFix(fix, null, null, null, null); } } diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUnnamedClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightImplicitClassUtil.java similarity index 53% rename from java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUnnamedClassUtil.java rename to java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightImplicitClassUtil.java index 1ae23099a594..e855d7a20c34 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUnnamedClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightImplicitClassUtil.java @@ -7,60 +7,60 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfoType; import com.intellij.codeInsight.intention.QuickFixFactory; import com.intellij.psi.*; import com.intellij.psi.util.ClassUtil; -import com.intellij.psi.util.JavaUnnamedClassUtil; +import com.intellij.psi.util.JavaImplicitClassUtil; import com.intellij.psi.util.PsiMethodUtil; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** - * Checks and reports errors for unnamed classes {@link PsiUnnamedClass}. + * Checks and reports errors for implicitly declared classes {@link PsiImplicitClass}. */ -public final class HighlightUnnamedClassUtil { +public final class HighlightImplicitClassUtil { - static HighlightInfo.@Nullable Builder checkUnnamedClassHasMainMethod(@NotNull PsiJavaFile file) { - if (!HighlightingFeature.UNNAMED_CLASSES.isAvailable(file)) return null; - PsiUnnamedClass unnamedClass = JavaUnnamedClassUtil.getUnnamedClassFor(file); - if (unnamedClass == null) return null; - PsiMethod[] methods = unnamedClass.getMethods(); + static HighlightInfo.@Nullable Builder checkImplicitClassHasMainMethod(@NotNull PsiJavaFile file) { + if (!HighlightingFeature.IMPLICIT_CLASSES.isAvailable(file)) return null; + PsiImplicitClass implicitClass = JavaImplicitClassUtil.getImplicitClassFor(file); + if (implicitClass == null) return null; + PsiMethod[] methods = implicitClass.getMethods(); boolean hasMainMethod = ContainerUtil.exists(methods, method -> "main".equals(method.getName()) && PsiMethodUtil.isMainMethod(method)); if (!hasMainMethod) { return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR) .range(file) .fileLevelAnnotation() - .registerFix(QuickFixFactory.getInstance().createAddMainMethodFix(unnamedClass), null, null, null, null) - .description(JavaErrorBundle.message("error.unnamed.class.contains.no.main.method")); + .registerFix(QuickFixFactory.getInstance().createAddMainMethodFix(implicitClass), null, null, null, null) + .description(JavaErrorBundle.message("error.implicit.class.contains.no.main.method")); } return null; } - static HighlightInfo.@Nullable Builder checkUnnamedClassFileIsValidIdentifier(@NotNull PsiJavaFile file) { - if (!HighlightingFeature.UNNAMED_CLASSES.isAvailable(file)) return null; - PsiUnnamedClass unnamedClass = JavaUnnamedClassUtil.getUnnamedClassFor(file); - if (unnamedClass == null) return null; - String name = ClassUtil.getJVMClassName(unnamedClass); + static HighlightInfo.@Nullable Builder checkImplicitClassFileIsValidIdentifier(@NotNull PsiJavaFile file) { + if (!HighlightingFeature.IMPLICIT_CLASSES.isAvailable(file)) return null; + PsiImplicitClass implicitClass = JavaImplicitClassUtil.getImplicitClassFor(file); + if (implicitClass == null) return null; + String name = ClassUtil.getJVMClassName(implicitClass); if (!PsiNameHelper.getInstance(file.getProject()).isQualifiedName(name)) { return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR) .range(file) .fileLevelAnnotation() - .description(JavaErrorBundle.message("error.unnamed.class.has.invalid.file.name")); + .description(JavaErrorBundle.message("error.implicit.class.has.invalid.file.name")); } return null; } - static HighlightInfo.@Nullable Builder checkInitializersInUnnamedClass(@NotNull PsiClassInitializer initializer) { - if (initializer.getContainingClass() instanceof PsiUnnamedClass && HighlightingFeature.UNNAMED_CLASSES.isAvailable(initializer)) { + static HighlightInfo.@Nullable Builder checkInitializersInImplicitClass(@NotNull PsiClassInitializer initializer) { + if (initializer.getContainingClass() instanceof PsiImplicitClass && HighlightingFeature.IMPLICIT_CLASSES.isAvailable(initializer)) { return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(initializer).descriptionAndTooltip( - JavaErrorBundle.message("error.initializers.are.not.allowed.in.unnamed.classes")); + JavaErrorBundle.message("error.initializers.are.not.allowed.in.implicit.classes")); } return null; } - static HighlightInfo.@Nullable Builder checkPackageNotAllowedInUnnamedClass(@NotNull PsiPackageStatement statement, - @NotNull PsiFile file) { - if (HighlightingFeature.UNNAMED_CLASSES.isAvailable(file) && JavaUnnamedClassUtil.isFileWithUnnamedClass(file)) { + static HighlightInfo.@Nullable Builder checkPackageNotAllowedInImplicitClass(@NotNull PsiPackageStatement statement, + @NotNull PsiFile file) { + if (HighlightingFeature.IMPLICIT_CLASSES.isAvailable(file) && JavaImplicitClassUtil.isFileWithImplicitClass(file)) { return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(statement).descriptionAndTooltip( - JavaErrorBundle.message("error.package.statement.not.allowed.for.unnamed.class")); + JavaErrorBundle.message("error.package.statement.not.allowed.for.implicit.class")); } return null; } diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index 9f332f6c93cb..b6826d211adb 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -373,8 +373,8 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh @Override public void visitJavaFile(@NotNull PsiJavaFile file) { super.visitJavaFile(file); - if (!hasErrorResults()) add(HighlightUnnamedClassUtil.checkUnnamedClassHasMainMethod(file)); - if (!hasErrorResults()) add(HighlightUnnamedClassUtil.checkUnnamedClassFileIsValidIdentifier(file)); + if (!hasErrorResults()) add(HighlightImplicitClassUtil.checkImplicitClassHasMainMethod(file)); + if (!hasErrorResults()) add(HighlightImplicitClassUtil.checkImplicitClassFileIsValidIdentifier(file)); } @Override @@ -553,14 +553,14 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh @Override public void visitClassInitializer(@NotNull PsiClassInitializer initializer) { super.visitClassInitializer(initializer); - if (!hasErrorResults()) add(HighlightClassUtil.checkUnnamedClassMember(initializer, myLanguageLevel, myFile)); + if (!hasErrorResults()) add(HighlightClassUtil.checkImplicitClassMember(initializer, myLanguageLevel, myFile)); if (!hasErrorResults()) add(HighlightClassUtil.checkIllegalInstanceMemberInRecord(initializer)); if (!hasErrorResults()) add(HighlightControlFlowUtil.checkInitializerCompleteNormally(initializer)); if (!hasErrorResults()) add(HighlightControlFlowUtil.checkUnreachableStatement(initializer.getBody())); if (!hasErrorResults()) { add(HighlightClassUtil.checkThingNotAllowedInInterface(initializer, initializer.getContainingClass())); } - if (!hasErrorResults()) add(HighlightUnnamedClassUtil.checkInitializersInUnnamedClass(initializer)); + if (!hasErrorResults()) add(HighlightImplicitClassUtil.checkInitializersInImplicitClass(initializer)); } @Override @@ -724,7 +724,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh @Override public void visitField(@NotNull PsiField field) { super.visitField(field); - if (!hasErrorResults()) add(HighlightClassUtil.checkUnnamedClassMember(field, myLanguageLevel, myFile)); + if (!hasErrorResults()) add(HighlightClassUtil.checkImplicitClassMember(field, myLanguageLevel, myFile)); if (!hasErrorResults()) add(HighlightClassUtil.checkIllegalInstanceMemberInRecord(field)); if (!hasErrorResults()) add(HighlightControlFlowUtil.checkFinalFieldInitialized(field)); } @@ -989,7 +989,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh @Override public void visitMethod(@NotNull PsiMethod method) { super.visitMethod(method); - if (!hasErrorResults()) add(HighlightClassUtil.checkUnnamedClassMember(method, myLanguageLevel, myFile)); + if (!hasErrorResults()) add(HighlightClassUtil.checkImplicitClassMember(method, myLanguageLevel, myFile)); if (!hasErrorResults()) add(HighlightControlFlowUtil.checkUnreachableStatement(method.getBody())); if (!hasErrorResults()) add(HighlightMethodUtil.checkConstructorHandleSuperClassExceptions(method)); if (!hasErrorResults()) add(HighlightMethodUtil.checkRecursiveConstructorInvocation(method)); @@ -1147,7 +1147,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh if (myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_9)) { if (!hasErrorResults()) add(ModuleHighlightUtil.checkPackageStatement(statement, myFile, myJavaModule)); } - if (!hasErrorResults()) add(HighlightUnnamedClassUtil.checkPackageNotAllowedInUnnamedClass(statement, myFile)); + if (!hasErrorResults()) add(HighlightImplicitClassUtil.checkPackageNotAllowedInImplicitClass(statement, myFile)); } @Override diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightingFeature.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightingFeature.java index 4bc1131eba11..3b6f07b047b2 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightingFeature.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightingFeature.java @@ -95,7 +95,7 @@ public enum HighlightingFeature { return super.isSufficient(useSiteLevel) || LanguageLevel.JDK_21_PREVIEW == useSiteLevel; } }, - UNNAMED_CLASSES(LanguageLevel.JDK_21_PREVIEW, "feature.unnamed.classes"); + IMPLICIT_CLASSES(LanguageLevel.JDK_21_PREVIEW, "feature.implicit.classes"); public static final @NonNls String JDK_INTERNAL_PREVIEW_FEATURE = "jdk.internal.PreviewFeature"; public static final @NonNls String JDK_INTERNAL_JAVAC_PREVIEW_FEATURE = "jdk.internal.javac.PreviewFeature"; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveMembersIntoClassFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveMembersIntoClassFix.java index 2a10fab968a1..07a48347bc0c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveMembersIntoClassFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveMembersIntoClassFix.java @@ -13,10 +13,10 @@ import java.util.Arrays; import java.util.List; public class MoveMembersIntoClassFix implements ModCommandAction { - private final SmartPsiElementPointer myUnnamedClass; + private final SmartPsiElementPointer myImplicitClass; - public MoveMembersIntoClassFix(PsiUnnamedClass unnamedClass) { - myUnnamedClass = SmartPointerManager.createPointer(unnamedClass); + public MoveMembersIntoClassFix(PsiImplicitClass implicitClass) { + myImplicitClass = SmartPointerManager.createPointer(implicitClass); } @Override @@ -31,9 +31,9 @@ public class MoveMembersIntoClassFix implements ModCommandAction { @Override public @NotNull ModCommand perform(@NotNull ActionContext context) { - PsiUnnamedClass unnamedClass = myUnnamedClass.getElement(); - if (unnamedClass == null) return ModCommand.nop(); - PsiClass[] innerClasses = unnamedClass.getInnerClasses(); + PsiImplicitClass implicitClass = myImplicitClass.getElement(); + if (implicitClass == null) return ModCommand.nop(); + PsiClass[] innerClasses = implicitClass.getInnerClasses(); List actionsPerClass = Arrays.stream(innerClasses).map(MoveAllMembersToParticularClassAction::new).toList(); @@ -50,7 +50,7 @@ public class MoveMembersIntoClassFix implements ModCommandAction { @Override protected void invoke(@NotNull ActionContext context, @NotNull PsiClass element, @NotNull ModPsiUpdater updater) { - if (!(element.getContainingClass() instanceof PsiUnnamedClass unn)) return; + if (!(element.getContainingClass() instanceof PsiImplicitClass unn)) return; PsiMember[] members = PsiTreeUtil.getChildrenOfType(unn, PsiMember.class); if (members == null) return; List membersWithoutClasses = Arrays.stream(members).filter(member -> !(member instanceof PsiClass)).toList(); diff --git a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CodeBlockSurrounder.java b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CodeBlockSurrounder.java index 028834e6c385..2ff014f7869e 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CodeBlockSurrounder.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CodeBlockSurrounder.java @@ -325,7 +325,7 @@ public abstract class CodeBlockSurrounder { return null; } if (parent instanceof PsiField) { - if (parent.getParent() instanceof PsiUnnamedClass) { + if (parent.getParent() instanceof PsiImplicitClass) { return null; } return new ExtractFieldInitializerSurrounder(expression, (PsiField)parent); diff --git a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java index 2f7630b15584..9569c0b42607 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java +++ b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java @@ -26,7 +26,7 @@ public class BasicFileParser { private final BasicJavaParser myParser; private final AbstractBasicJavaElementTypeFactory.JavaElementTypeContainer myJavaElementTypeContainer; - private final TokenSet UNNAMED_CLASS_INDICATORS; + private final TokenSet IMPLICIT_CLASS_INDICATORS; private final WhiteSpaceAndCommentSetHolder myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder.INSTANCE; @@ -36,7 +36,7 @@ public class BasicFileParser { IMPORT_LIST_STOPPER_SET = TokenSet.orSet( BasicElementTypes.BASIC_MODIFIER_BIT_SET, TokenSet.create(JavaTokenType.CLASS_KEYWORD, JavaTokenType.INTERFACE_KEYWORD, JavaTokenType.ENUM_KEYWORD, JavaTokenType.AT)); - UNNAMED_CLASS_INDICATORS = + IMPLICIT_CLASS_INDICATORS = TokenSet.create(myJavaElementTypeContainer.METHOD, myJavaElementTypeContainer.FIELD, myJavaElementTypeContainer.CLASS_INITIALIZER); } @@ -55,7 +55,7 @@ public class BasicFileParser { PsiBuilder.Marker firstDeclaration = null; PsiBuilder.Marker invalidElements = null; - boolean isUnnamedClass = false; + boolean isImplicitClass = false; while (!builder.eof()) { if (builder.getTokenType() == JavaTokenType.SEMICOLON) { builder.advanceLexer(); @@ -75,8 +75,8 @@ public class BasicFileParser { if (firstDeclaration == null) { firstDeclaration = declaration; } - if (!isUnnamedClass && UNNAMED_CLASS_INDICATORS.contains(exprType(declaration))) { - isUnnamedClass = true; + if (!isImplicitClass && IMPLICIT_CLASS_INDICATORS.contains(exprType(declaration))) { + isImplicitClass = true; } continue; } @@ -96,9 +96,9 @@ public class BasicFileParser { impListInfo.first.setCustomEdgeTokenBinders(myWhiteSpaceAndCommentSetHolder.getPrecedingCommentBinder(), null); // pass comments behind fake import list firstDeclaration.setCustomEdgeTokenBinders(myWhiteSpaceAndCommentSetHolder.getSpecialPrecedingCommentBinder(), null); } - if (isUnnamedClass) { + if (isImplicitClass) { PsiBuilder.Marker beforeFirst = firstDeclaration.precede(); - done(beforeFirst, myJavaElementTypeContainer.UNNAMED_CLASS, myWhiteSpaceAndCommentSetHolder); + done(beforeFirst, myJavaElementTypeContainer.IMPLICIT_CLASS, myWhiteSpaceAndCommentSetHolder); } } diff --git a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaElementTypeFactory.java b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaElementTypeFactory.java index a77575ebbf24..e2e8b6c4887f 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaElementTypeFactory.java +++ b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/AbstractBasicJavaElementTypeFactory.java @@ -59,7 +59,7 @@ public abstract class AbstractBasicJavaElementTypeFactory { public final IElementType PERMITS_LIST; public final IElementType CLASS; - public final IElementType UNNAMED_CLASS; + public final IElementType IMPLICIT_CLASS; public final IElementType ANONYMOUS_CLASS; @@ -258,7 +258,7 @@ public abstract class AbstractBasicJavaElementTypeFactory { IElementType RECORD_HEADER, IElementType PERMITS_LIST, IElementType CLASS, - IElementType UNNAMED_CLASS, + IElementType IMPLICIT_CLASS, IElementType ANONYMOUS_CLASS, IElementType ENUM_CONSTANT_INITIALIZER, IElementType TYPE_PARAMETER_LIST, @@ -371,7 +371,7 @@ public abstract class AbstractBasicJavaElementTypeFactory { this.RECORD_HEADER = RECORD_HEADER; this.PERMITS_LIST = PERMITS_LIST; this.CLASS = CLASS; - this.UNNAMED_CLASS = UNNAMED_CLASS; + this.IMPLICIT_CLASS = IMPLICIT_CLASS; this.ANONYMOUS_CLASS = ANONYMOUS_CLASS; this.ENUM_CONSTANT_INITIALIZER = ENUM_CONSTANT_INITIALIZER; this.TYPE_PARAMETER_LIST = TYPE_PARAMETER_LIST; diff --git a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaElementType.java b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaElementType.java index 3dcdb2e5e53e..94f69c593ae2 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaElementType.java +++ b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/BasicJavaElementType.java @@ -32,7 +32,7 @@ import java.util.function.Supplier; public interface BasicJavaElementType { IElementType BASIC_CLASS = new IJavaElementType("CLASS"); - IElementType BASIC_UNNAMED_CLASS = new IJavaElementType("UNNAMED_CLASS"); + IElementType BASIC_IMPLICIT_CLASS = new IJavaElementType("IMPLICIT_CLASS"); IElementType BASIC_ANONYMOUS_CLASS = new IJavaElementType("ANONYMOUS_CLASS"); IElementType BASIC_ENUM_CONSTANT_INITIALIZER = new IJavaElementType("ENUM_CONSTANT_INITIALIZER"); IElementType BASIC_TYPE_PARAMETER_LIST = new IJavaElementType("TYPE_PARAMETER_LIST", true); diff --git a/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java b/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java index 59e9ee1df040..0653485f963a 100644 --- a/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java +++ b/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java @@ -119,22 +119,22 @@ public abstract class AbstractBasicClassParsingTest extends AbstractBasicJavaPar doTest(true); } - public void testUnnamedClass0() { + public void testImplicitClass0() { doTest(true); } - public void testUnnamedClass1() { + public void testImplicitClass1() { doTest(true); } - public void testUnnamedClass2() { + public void testImplicitClass2() { doTest(true); } - public void testUnnamedClass3() { + public void testImplicitClass3() { doTest(true); } - public void testUnnamedClass4() { + public void testImplicitClass4() { doTest(true); } - public void testUnnamedClass5() { + public void testImplicitClass5() { doTest(true); } } diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/copy/CopyClassesHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/copy/CopyClassesHandler.java index 365acec98a6b..36d75111dd46 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/copy/CopyClassesHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/copy/CopyClassesHandler.java @@ -603,7 +603,7 @@ public class CopyClassesHandler extends CopyHandlerDelegateBase implements DumbA element.getParent() != null && ((PsiClass)element).getContainingClass() == null && !(element instanceof PsiAnonymousClass) && - !(element instanceof PsiUnnamedClass)) { + !(element instanceof PsiImplicitClass)) { break; } element = element.getParent(); @@ -615,7 +615,7 @@ public class CopyClassesHandler extends CopyHandlerDelegateBase implements DumbA if (isSynthetic(aClass)) { return null; } - if (aClass instanceof PsiUnnamedClass) { + if (aClass instanceof PsiImplicitClass) { return null; } buffer.add(aClass); diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/extractInterface/ExtractInterfaceHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/extractInterface/ExtractInterfaceHandler.java index 8fa081eeed00..321fb0b5c814 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/extractInterface/ExtractInterfaceHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/extractInterface/ExtractInterfaceHandler.java @@ -29,7 +29,10 @@ import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; public class ExtractInterfaceHandler implements ElementsHandler, ContextAwareActionHandler { @@ -71,8 +74,8 @@ public class ExtractInterfaceHandler implements ElementsHandler, ContextAwareAct return; } - if (myClass instanceof PsiUnnamedClass) { - String message = RefactoringBundle.message("error.interface.cannot.be.extracted.from.unnamed.class"); + if (myClass instanceof PsiImplicitClass) { + String message = RefactoringBundle.message("error.interface.cannot.be.extracted.from.implicit.class"); CommonRefactoringUtil.showErrorHint(project, null, message, getRefactoringName(), HelpID.EXTRACT_INTERFACE); return; } diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/extractSuperclass/ExtractSuperclassHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/extractSuperclass/ExtractSuperclassHandler.java index 6bd234a640cc..9d7df317222c 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/extractSuperclass/ExtractSuperclassHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/extractSuperclass/ExtractSuperclassHandler.java @@ -70,8 +70,8 @@ public class ExtractSuperclassHandler implements ElementsHandler, ExtractSupercl return; } - if (mySubclass instanceof PsiUnnamedClass) { - String message = RefactoringBundle.message("error.superclass.cannot.be.extracted.from.unnamed.class"); + if (mySubclass instanceof PsiImplicitClass) { + String message = RefactoringBundle.message("error.superclass.cannot.be.extracted.from.implicit.class"); CommonRefactoringUtil.showErrorHint(project, null, message, getRefactoringName(), HelpID.EXTRACT_SUPERCLASS); return; } diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/extractclass/ExtractClassHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/extractclass/ExtractClassHandler.java index ce8f1fd17f93..5410b99be762 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/extractclass/ExtractClassHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/extractclass/ExtractClassHandler.java @@ -78,8 +78,8 @@ public class ExtractClassHandler implements ElementsHandler, ContextAwareActionH if (!containingClass.getManager().isInProject(containingClass)) { return RefactorJBundle.message("the.selected.class.should.belong.to.project.sources"); } - if (containingClass instanceof PsiUnnamedClass) { - return RefactorJBundle.message("refactoring.cannot.be.done.in.unnamed.class"); + if (containingClass instanceof PsiImplicitClass) { + return RefactorJBundle.message("refactoring.cannot.be.done.in.implicit.class"); } return null; } diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineMethodProcessor.java b/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineMethodProcessor.java index 98810cc26d39..f20fed64cbcb 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineMethodProcessor.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineMethodProcessor.java @@ -797,7 +797,7 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor { @Nullable private PsiLocalVariable declareThis(PsiSubstitutor callSubstitutor, PsiCodeBlock block) { PsiClass containingClass = myMethod.getContainingClass(); - if (myMethod.hasModifierProperty(PsiModifier.STATIC) || containingClass == null || containingClass instanceof PsiUnnamedClass) return null; + if (myMethod.hasModifierProperty(PsiModifier.STATIC) || containingClass == null || containingClass instanceof PsiImplicitClass) return null; PsiType thisType = GenericsUtil.getVariableTypeByExpressionType(myFactory.createType(containingClass, callSubstitutor)); String thisVarName = new VariableNameGenerator(myMethod.getFirstChild(), VariableKind.LOCAL_VARIABLE) .byType(thisType).byName("self").generate(true); diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index f71254be406e..e1db9f050359 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -1297,7 +1297,7 @@ public final class JavaCompletionContributor extends CompletionContributor imple if (PsiUtilCore.getElementType(at) == JavaTokenType.LPARENTH && PsiTreeUtil.getParentOfType(ref, PsiExpression.class, PsiClass.class) == null && - PsiTreeUtil.getParentOfType(at, PsiUnnamedClass.class) == null) { // TODO check before it that there is record + PsiTreeUtil.getParentOfType(at, PsiImplicitClass.class) == null) { // TODO check before it that there is record // looks like a method declaration, e.g. StringBuimethodName() inside a class return true; } diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddMainMethodFix.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddMainMethodFix.java index 962fabe32f42..9b3843cc05ef 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddMainMethodFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddMainMethodFix.java @@ -6,13 +6,13 @@ import com.intellij.modcommand.ActionContext; import com.intellij.modcommand.ModPsiUpdater; import com.intellij.modcommand.PsiUpdateModCommandAction; import com.intellij.psi.JavaPsiFacade; +import com.intellij.psi.PsiImplicitClass; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiTypes; -import com.intellij.psi.PsiUnnamedClass; import org.jetbrains.annotations.NotNull; -public class AddMainMethodFix extends PsiUpdateModCommandAction { - public AddMainMethodFix(@NotNull PsiUnnamedClass element) { +public class AddMainMethodFix extends PsiUpdateModCommandAction { + public AddMainMethodFix(@NotNull PsiImplicitClass element) { super(element); } @@ -22,7 +22,7 @@ public class AddMainMethodFix extends PsiUpdateModCommandAction } @Override - protected void invoke(@NotNull ActionContext context, @NotNull PsiUnnamedClass element, @NotNull ModPsiUpdater updater) { + protected void invoke(@NotNull ActionContext context, @NotNull PsiImplicitClass element, @NotNull ModPsiUpdater updater) { PsiMethod mainMethod = JavaPsiFacade.getInstance(context.project()).getElementFactory().createMethod("main", PsiTypes.voidType()); element.add(mainMethod); } diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/config/QuickFixFactoryImpl.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/config/QuickFixFactoryImpl.java index 079c8b9f2247..341dc7715d8b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/config/QuickFixFactoryImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/config/QuickFixFactoryImpl.java @@ -1225,7 +1225,7 @@ public final class QuickFixFactoryImpl extends QuickFixFactory { } @Override - public @NotNull IntentionAction createAddMainMethodFix(@NotNull PsiUnnamedClass unnamedClass) { - return new AddMainMethodFix(unnamedClass).asIntention(); + public @NotNull IntentionAction createAddMainMethodFix(@NotNull PsiImplicitClass implicitClass) { + return new AddMainMethodFix(implicitClass).asIntention(); } } diff --git a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java index 09c22453e719..f8f8070e0360 100644 --- a/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java +++ b/java/java-impl/src/com/intellij/ide/projectView/impl/ClassesTreeStructureProvider.java @@ -20,7 +20,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.util.ClassUtil; -import com.intellij.psi.util.JavaUnnamedClassUtil; +import com.intellij.psi.util.JavaImplicitClassUtil; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -170,10 +170,9 @@ public class ClassesTreeStructureProvider implements SelectableTreeStructureProv PsiFile value = getValue(); if (value instanceof PsiClassOwner) { ViewSettings settings = getSettings(); - - PsiUnnamedClass unnamedClass = JavaUnnamedClassUtil.getUnnamedClassFor(value); - if (unnamedClass != null) { - result.addAll(ClassTreeNode.computeChildren(unnamedClass, settings, myProject, true)); + PsiImplicitClass implicitClass = JavaImplicitClassUtil.getImplicitClassFor(value); + if (implicitClass != null) { + result.addAll(ClassTreeNode.computeChildren(implicitClass, settings, myProject, true)); } else { for (PsiClass aClass : ((PsiClassOwner)value).getClasses()) { if (!(aClass instanceof SyntheticElement)) { diff --git a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java index c7b06e5b956c..8ceff9001bb0 100644 --- a/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java +++ b/java/java-impl/src/com/intellij/psi/formatter/java/AbstractJavaBlock.java @@ -186,7 +186,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo return new PartialWhitespaceBlock(child, range, wrap, alignment, actualIndent, settings, javaSettings, myFormattingMode); } - if (childPsi instanceof PsiUnnamedClass) { + if (childPsi instanceof PsiImplicitClass) { return new SimpleJavaBlock(child, wrap, alignmentStrategy, Indent.getNoneIndent(), settings, javaSettings, formattingMode); } if (childPsi instanceof PsiClass || childPsi instanceof PsiJavaModule) { @@ -370,7 +370,7 @@ public abstract class AbstractJavaBlock extends AbstractBlock implements JavaBlo if (parentType == JavaElementType.IMPORT_LIST) return Indent.getNoneIndent(); if (parentType == JavaElementType.FIELD) return Indent.getContinuationWithoutFirstIndent(indentOptions.USE_RELATIVE_INDENTS); if (parentType == JavaElementType.EXPRESSION_STATEMENT) return Indent.getNoneIndent(); - if (parentType == JavaElementType.UNNAMED_CLASS) return Indent.getNoneIndent(); + if (parentType == JavaElementType.IMPLICIT_CLASS) return Indent.getNoneIndent(); if (SourceTreeToPsiMap.treeElementToPsi(parent) instanceof PsiFile) { return Indent.getNoneIndent(); } diff --git a/java/java-impl/src/com/intellij/refactoring/IntroduceVariableUtil.java b/java/java-impl/src/com/intellij/refactoring/IntroduceVariableUtil.java index e33489f71cf8..dc79203208a9 100644 --- a/java/java-impl/src/com/intellij/refactoring/IntroduceVariableUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/IntroduceVariableUtil.java @@ -289,8 +289,8 @@ public final class IntroduceVariableUtil { } } } - if (topLevelExpression.getParent() instanceof PsiField f && f.getParent() instanceof PsiUnnamedClass) { - return JavaRefactoringBundle.message("introduce.variable.message.cannot.extract.in.unnamed.class"); + if (topLevelExpression.getParent() instanceof PsiField f && f.getParent() instanceof PsiImplicitClass) { + return JavaRefactoringBundle.message("introduce.variable.message.cannot.extract.in.implicit.class"); } } return null; diff --git a/java/java-impl/src/com/intellij/usageView/JavaUsageViewDescriptionProvider.java b/java/java-impl/src/com/intellij/usageView/JavaUsageViewDescriptionProvider.java index 61e3a10f504c..05f70527aa4d 100644 --- a/java/java-impl/src/com/intellij/usageView/JavaUsageViewDescriptionProvider.java +++ b/java/java-impl/src/com/intellij/usageView/JavaUsageViewDescriptionProvider.java @@ -34,8 +34,8 @@ public class JavaUsageViewDescriptionProvider implements ElementDescriptionProvi boolean isStatic = initializer.hasModifierProperty(PsiModifier.STATIC); return isStatic ? CLINIT : INIT; } - else if (element instanceof PsiUnnamedClass unnamedClass) { - return unnamedClass.getContainingFile().getName(); + else if (element instanceof PsiImplicitClass implicitClass) { + return implicitClass.getContainingFile().getName(); } } diff --git a/java/java-impl/src/com/siyeh/ig/naming/ConfusingMainMethodInspection.java b/java/java-impl/src/com/siyeh/ig/naming/ConfusingMainMethodInspection.java index 7cbd86f90bda..cbdf7f170656 100644 --- a/java/java-impl/src/com/siyeh/ig/naming/ConfusingMainMethodInspection.java +++ b/java/java-impl/src/com/siyeh/ig/naming/ConfusingMainMethodInspection.java @@ -16,9 +16,9 @@ package com.siyeh.ig.naming; import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiImplicitClass; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiModifier; -import com.intellij.psi.PsiUnnamedClass; import com.intellij.psi.util.PsiMethodUtil; import com.siyeh.HardcodedMethodConstants; import com.siyeh.InspectionGadgetsBundle; @@ -68,7 +68,7 @@ public class ConfusingMainMethodInspection extends BaseInspection { return; } PsiClass containingClass = method.getContainingClass(); - if (!(containingClass instanceof PsiUnnamedClass) && containingClass != null && containingClass.getQualifiedName() == null) { + if (!(containingClass instanceof PsiImplicitClass) && containingClass != null && containingClass.getQualifiedName() == null) { registerMethodError(method, Boolean.TRUE); // main method not runnable } } diff --git a/java/java-impl/src/messages/RefactorJBundle.properties b/java/java-impl/src/messages/RefactorJBundle.properties index 9cd108c91361..e6070016d94b 100644 --- a/java/java-impl/src/messages/RefactorJBundle.properties +++ b/java/java-impl/src/messages/RefactorJBundle.properties @@ -18,7 +18,7 @@ the.selected.class.is.an.annotation.type=The selected class is an annotation int the.refactoring.is.not.supported.on.non.static.inner.classes=The refactoring is not supported on non-static inner classes. the.selected.class.has.no.members.to.extract=The selected class has no members to extract. the.selected.class.should.belong.to.project.sources=The selected class should belong to project sources -refactoring.cannot.be.done.in.unnamed.class=Refactoring cannot be done in unnamed class +refactoring.cannot.be.done.in.implicit.class=Refactoring cannot be done in implicitly declared class references.to.extract=References to extract ( {0, choice, 0#(Not found)|1#{0} reference|2#{0} references}{1, choice, 0#|1# in {1} file|2# in {1} files}) extract.class.as.enum.column.title=As Enum extract.class.depends.on.0.from.1.tooltip=Depends on {0} from {1} diff --git a/java/java-indexing-impl/src/META-INF/JavaIndexingPlugin.xml b/java/java-indexing-impl/src/META-INF/JavaIndexingPlugin.xml index f8cd110e7f11..d75d098e298c 100644 --- a/java/java-indexing-impl/src/META-INF/JavaIndexingPlugin.xml +++ b/java/java-indexing-impl/src/META-INF/JavaIndexingPlugin.xml @@ -48,7 +48,7 @@ - + { + private static final JavaImplicitClassIndex ourInstance = new JavaImplicitClassIndex(); + + public static JavaImplicitClassIndex getInstance() { + return ourInstance; + } + + @Override + public @NotNull StubIndexKey getKey() { + return JavaStubIndexKeys.IMPLICIT_CLASSES; + } + + public Collection getAllClasses(@NotNull Project project) { + return StubIndex.getInstance().getAllKeys(getKey(), project); + } + + public @NotNull Collection getElements(@NotNull String key, + @NotNull Project project, + @Nullable GlobalSearchScope scope) { + return StubIndex.getElements(JavaStubIndexKeys.IMPLICIT_CLASSES, key, project, scope, PsiImplicitClass.class); + } +} \ No newline at end of file diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/java/stubs/index/JavaUnnamedClassIndex.java b/java/java-indexing-impl/src/com/intellij/psi/impl/java/stubs/index/JavaUnnamedClassIndex.java deleted file mode 100644 index 271a75c354ff..000000000000 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/java/stubs/index/JavaUnnamedClassIndex.java +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.psi.impl.java.stubs.index; - -import com.intellij.openapi.project.Project; -import com.intellij.psi.PsiUnnamedClass; -import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.stubs.StringStubIndexExtension; -import com.intellij.psi.stubs.StubIndex; -import com.intellij.psi.stubs.StubIndexKey; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collection; - -public class JavaUnnamedClassIndex extends StringStubIndexExtension { - private static final JavaUnnamedClassIndex ourInstance = new JavaUnnamedClassIndex(); - - public static JavaUnnamedClassIndex getInstance() { - return ourInstance; - } - - @Override - public @NotNull StubIndexKey getKey() { - return JavaStubIndexKeys.UNNAMED_CLASSES; - } - - public Collection getAllClasses(@NotNull Project project) { - return StubIndex.getInstance().getAllKeys(getKey(), project); - } - - public @NotNull Collection getElements(@NotNull String key, @NotNull Project project, @Nullable GlobalSearchScope scope) { - return StubIndex.getElements(JavaStubIndexKeys.UNNAMED_CLASSES, key, project, scope, PsiUnnamedClass.class); - } -} \ No newline at end of file diff --git a/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java b/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java index 09567ce748f4..7f1b84b2e69a 100644 --- a/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java +++ b/java/java-psi-api/src/com/intellij/psi/JavaElementVisitor.java @@ -185,6 +185,10 @@ public abstract class JavaElementVisitor extends PsiElementVisitor { visitStatement(statement); } + public void visitImplicitClass(@NotNull PsiImplicitClass aClass) { + visitClass(aClass); + } + public void visitImplicitVariable(@NotNull ImplicitVariable variable) { visitLocalVariable(variable); } @@ -480,10 +484,6 @@ public abstract class JavaElementVisitor extends PsiElementVisitor { visitExpression(expression); } - public void visitUnnamedClass(@NotNull PsiUnnamedClass aClass) { - visitClass(aClass); - } - public void visitUnnamedPattern(@NotNull PsiUnnamedPattern pattern) { visitPattern(pattern); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiUnnamedClass.java b/java/java-psi-api/src/com/intellij/psi/PsiImplicitClass.java similarity index 79% rename from java/java-psi-api/src/com/intellij/psi/PsiUnnamedClass.java rename to java/java-psi-api/src/com/intellij/psi/PsiImplicitClass.java index be386012a5b8..a3ccdd984f0a 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiUnnamedClass.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiImplicitClass.java @@ -6,12 +6,12 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.Nullable; /** - * Represents unnamed class from JEP 445. + * Represents implicitly declared class from JEP 463. * Please note that it allows a bit more flexibility than the specification itself (e.g., it is allowed not to have the "main" method, - * but have at least one member to be considered an unnamed class) + * but have at least one member to be considered an implicitly declared class) */ @ApiStatus.Experimental -public interface PsiUnnamedClass extends PsiClass { +public interface PsiImplicitClass extends PsiClass { @Override @Nullable String getQualifiedName(); diff --git a/java/java-psi-api/src/com/intellij/psi/impl/java/stubs/index/JavaStubIndexKeys.java b/java/java-psi-api/src/com/intellij/psi/impl/java/stubs/index/JavaStubIndexKeys.java index 50df5915ba1a..1b6fb3af7015 100644 --- a/java/java-psi-api/src/com/intellij/psi/impl/java/stubs/index/JavaStubIndexKeys.java +++ b/java/java-psi-api/src/com/intellij/psi/impl/java/stubs/index/JavaStubIndexKeys.java @@ -16,7 +16,7 @@ public final class JavaStubIndexKeys { public static final StubIndexKey CLASS_SHORT_NAMES = StubIndexKey.createIndexKey("java.class.shortname"); public static final StubIndexKey CLASS_FQN = StubIndexKey.createIndexKey("java.class.fqn"); public static final StubIndexKey MODULE_NAMES = StubIndexKey.createIndexKey("java.module.name"); - public static final StubIndexKey UNNAMED_CLASSES = StubIndexKey.createIndexKey("java.unnamed.class"); + public static final StubIndexKey IMPLICIT_CLASSES = StubIndexKey.createIndexKey("java.unnamed.class"); //preserve old name for index private JavaStubIndexKeys() { } } \ No newline at end of file diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java index 3355a3cd6c09..840cac018ea7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java @@ -14,13 +14,13 @@ import com.intellij.psi.impl.java.stubs.index.JavaStubIndexKeys; import com.intellij.psi.impl.source.PsiAnonymousClassImpl; import com.intellij.psi.impl.source.PsiClassImpl; import com.intellij.psi.impl.source.PsiEnumConstantInitializerImpl; -import com.intellij.psi.impl.source.PsiUnnamedClassImpl; +import com.intellij.psi.impl.source.PsiImplicitClassImpl; import com.intellij.psi.impl.source.tree.JavaDocElementType; import com.intellij.psi.impl.source.tree.JavaElementType; import com.intellij.psi.impl.source.tree.LightTreeUtil; import com.intellij.psi.impl.source.tree.java.AnonymousClassElement; import com.intellij.psi.impl.source.tree.java.EnumConstantInitializerElement; -import com.intellij.psi.impl.source.tree.java.UnnamedClassElement; +import com.intellij.psi.impl.source.tree.java.ImplicitClassElement; import com.intellij.psi.stubs.IndexSink; import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubInputStream; @@ -48,8 +48,8 @@ public abstract class JavaClassElementType extends JavaStubElementType(type, parentStub, qualifiedName, name, baseRef, flags); } @NotNull - private static JavaClassElementType typeForClass(final boolean anonymous, final boolean enumConst, final boolean unnamedClass) { + private static JavaClassElementType typeForClass(final boolean anonymous, final boolean enumConst, final boolean implicitClass) { return enumConst ? JavaStubElementTypes.ENUM_CONSTANT_INITIALIZER - : unnamedClass ? JavaStubElementTypes.UNNAMED_CLASS + : implicitClass ? JavaStubElementTypes.IMPLICIT_CLASS : anonymous ? JavaStubElementTypes.ANONYMOUS_CLASS : JavaStubElementTypes.CLASS; } @@ -174,8 +174,8 @@ public abstract class JavaClassElementType extends JavaStubElementType extends PsiMemberStub { return false; } - default boolean isUnnamed() { + default boolean isImplicit() { return false; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/SourceStubPsiFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/SourceStubPsiFactory.java index 62a5e90799af..531bef0b2d37 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/SourceStubPsiFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/SourceStubPsiFactory.java @@ -12,7 +12,7 @@ public class SourceStubPsiFactory extends StubPsiFactory { public PsiClass createClass(PsiClassStub stub) { if (stub.isEnumConstantInitializer()) return new PsiEnumConstantInitializerImpl(stub); if (stub.isAnonymous()) return new PsiAnonymousClassImpl(stub); - if (stub.isUnnamed()) return new PsiUnnamedClassImpl(stub); + if (stub.isImplicit()) return new PsiImplicitClassImpl(stub); return new PsiClassImpl(stub); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java index a566799a39d7..2ed2cecf5ff0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiClassStubImpl.java @@ -26,7 +26,7 @@ public class PsiClassStubImpl extends StubBase implements private static final int LOCAL_CLASS_INNER = 0x200; private static final int HAS_DOC_COMMENT = 0x400; private static final int RECORD = 0x800; - private static final int UNNAMED = 0x1000; + private static final int IMPLICIT = 0x1000; private final @NotNull TypeInfo myTypeInfo; private final String myQualifiedName; @@ -107,8 +107,8 @@ public class PsiClassStubImpl extends StubBase implements } @Override - public boolean isUnnamed() { - return BitUtil.isSet(myFlags, UNNAMED); + public boolean isImplicit() { + return BitUtil.isSet(myFlags, IMPLICIT); } @Override @@ -120,8 +120,8 @@ public class PsiClassStubImpl extends StubBase implements return BitUtil.isSet(flags, ENUM_CONSTANT_INITIALIZER); } - public static boolean isUnnamed(final short flags) { - return BitUtil.isSet(flags, UNNAMED); + public static boolean isImplicit(final short flags) { + return BitUtil.isSet(flags, IMPLICIT); } @Override @@ -199,7 +199,7 @@ public class PsiClassStubImpl extends StubBase implements boolean localClassInner, boolean hasDocComment, boolean isRecord, - boolean isUnnamed) { + boolean isImplicit) { short flags = 0; if (isDeprecated) flags |= DEPRECATED; if (isInterface) flags |= INTERFACE; @@ -213,7 +213,7 @@ public class PsiClassStubImpl extends StubBase implements if (localClassInner) flags |= LOCAL_CLASS_INNER; if (hasDocComment) flags |= HAS_DOC_COMMENT; if (isRecord) flags |= RECORD; - if (isUnnamed) flags |= UNNAMED; + if (isImplicit) flags |= IMPLICIT; return flags; } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java index 8a835d376705..908c3fe6301d 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/Constants.java @@ -20,7 +20,7 @@ import com.intellij.psi.impl.source.tree.JavaElementType; import com.intellij.psi.tree.TokenSet; public interface Constants extends ElementType { - TokenSet CLASS_BIT_SET = TokenSet.create(JavaElementType.CLASS, JavaElementType.ANONYMOUS_CLASS, JavaElementType.ENUM_CONSTANT_INITIALIZER, JavaElementType.UNNAMED_CLASS); + TokenSet CLASS_BIT_SET = TokenSet.create(JavaElementType.CLASS, JavaElementType.ANONYMOUS_CLASS, JavaElementType.ENUM_CONSTANT_INITIALIZER, JavaElementType.IMPLICIT_CLASS); TokenSet FIELD_BIT_SET = TokenSet.create(JavaElementType.FIELD, JavaElementType.ENUM_CONSTANT); TokenSet METHOD_BIT_SET = TokenSet.create(JavaElementType.METHOD, JavaElementType.ANNOTATION_METHOD); TokenSet CLASS_INITIALIZER_BIT_SET = TokenSet.create(JavaElementType.CLASS_INITIALIZER); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiUnnamedClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImplicitClassImpl.java similarity index 93% rename from java/java-psi-impl/src/com/intellij/psi/impl/source/PsiUnnamedClassImpl.java rename to java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImplicitClassImpl.java index 7b224eaab8cb..29f3fb9061ba 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiUnnamedClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImplicitClassImpl.java @@ -17,7 +17,7 @@ import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.LocalSearchScope; import com.intellij.psi.search.SearchScope; -import com.intellij.psi.util.JavaUnnamedClassUtil; +import com.intellij.psi.util.JavaImplicitClassUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -28,14 +28,14 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; -public class PsiUnnamedClassImpl extends JavaStubPsiElement> implements PsiUnnamedClass, PsiExtensibleClass { +public class PsiImplicitClassImpl extends JavaStubPsiElement> implements PsiImplicitClass, PsiExtensibleClass { private final ClassInnerStuffCache myInnersCache = new ClassInnerStuffCache(this); - public PsiUnnamedClassImpl(@NotNull PsiClassStub stub) { - super(stub, JavaStubElementTypes.UNNAMED_CLASS); + public PsiImplicitClassImpl(@NotNull PsiClassStub stub) { + super(stub, JavaStubElementTypes.IMPLICIT_CLASS); } - public PsiUnnamedClassImpl(@NotNull ASTNode node) { + public PsiImplicitClassImpl(@NotNull ASTNode node) { super(node); } @@ -43,7 +43,7 @@ public class PsiUnnamedClassImpl extends JavaStubPsiElement> imp public @Nullable String getQualifiedName() { PsiElement parent = getParent(); if (parent instanceof PsiJavaFile) { - return JavaUnnamedClassUtil.getJvmName(((PsiJavaFile)parent).getName()); + return JavaImplicitClassUtil.getJvmName(((PsiJavaFile)parent).getName()); } return null; } @@ -223,7 +223,7 @@ public class PsiUnnamedClassImpl extends JavaStubPsiElement> imp @Override public PsiElement setName(@NotNull String name) throws IncorrectOperationException { - throw new IncorrectOperationException("Unnamed class may have no name"); + throw new IncorrectOperationException("Implicitly declared class may have no name"); } @Override @@ -284,7 +284,7 @@ public class PsiUnnamedClassImpl extends JavaStubPsiElement> imp @Override public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor) { - ((JavaElementVisitor)visitor).visitUnnamedClass(this); + ((JavaElementVisitor)visitor).visitImplicitClass(this); } else { visitor.visitElement(this); @@ -307,6 +307,6 @@ public class PsiUnnamedClassImpl extends JavaStubPsiElement> imp @Override public String toString() { - return "PsiUnnamedClass"; + return "PsiImplicitClass"; } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java index 64c74e1245ea..9d3ae1ca89dc 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java @@ -37,7 +37,7 @@ public interface JavaElementType { } IElementType CLASS = JavaStubElementTypes.CLASS; - IElementType UNNAMED_CLASS = JavaStubElementTypes.UNNAMED_CLASS; + IElementType IMPLICIT_CLASS = JavaStubElementTypes.IMPLICIT_CLASS; IElementType ANONYMOUS_CLASS = JavaStubElementTypes.ANONYMOUS_CLASS; IElementType ENUM_CONSTANT_INITIALIZER = JavaStubElementTypes.ENUM_CONSTANT_INITIALIZER; IElementType TYPE_PARAMETER_LIST = JavaStubElementTypes.TYPE_PARAMETER_LIST; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementTypeFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementTypeFactory.java index 35a30e014e08..cddd4fbfb00f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementTypeFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementTypeFactory.java @@ -47,7 +47,7 @@ public class JavaElementTypeFactory extends AbstractBasicJavaElementTypeFactory JavaElementType.RECORD_HEADER, JavaElementType.PERMITS_LIST, JavaElementType.CLASS, - JavaElementType.UNNAMED_CLASS, + JavaElementType.IMPLICIT_CLASS, JavaElementType.ANONYMOUS_CLASS, JavaElementType.ENUM_CONSTANT_INITIALIZER, JavaElementType.TYPE_PARAMETER_LIST, diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java index 2315296ffbd4..f8fb167ec6bf 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ClassElement.java @@ -265,7 +265,7 @@ public class ClassElement extends CompositeElement implements Constants { return findChildByType(TYPE_PARAMETER_LIST); case ChildRole.CLASS_OR_INTERFACE_KEYWORD: - if (this instanceof UnnamedClassElement) { + if (this instanceof ImplicitClassElement) { return null; } for (ASTNode child = getFirstChildNode(); child != null; child = child.getTreeNext()) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/UnnamedClassElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplicitClassElement.java similarity index 59% rename from java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/UnnamedClassElement.java rename to java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplicitClassElement.java index 6380458f0e11..4cb2f8fb0c3e 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/UnnamedClassElement.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ImplicitClassElement.java @@ -1,8 +1,8 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.psi.impl.source.tree.java; -public class UnnamedClassElement extends ClassElement { - public UnnamedClassElement() { - super(UNNAMED_CLASS); +public class ImplicitClassElement extends ClassElement { + public ImplicitClassElement() { + super(IMPLICIT_CLASS); } } diff --git a/java/java-psi-impl/src/com/intellij/psi/util/JavaUnnamedClassUtil.java b/java/java-psi-impl/src/com/intellij/psi/util/JavaImplicitClassUtil.java similarity index 51% rename from java/java-psi-impl/src/com/intellij/psi/util/JavaUnnamedClassUtil.java rename to java/java-psi-impl/src/com/intellij/psi/util/JavaImplicitClassUtil.java index 84fd287d520c..9866f26b15b6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/util/JavaUnnamedClassUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/util/JavaImplicitClassUtil.java @@ -4,41 +4,41 @@ package com.intellij.psi.util; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiImplicitClass; import com.intellij.psi.PsiJavaFile; -import com.intellij.psi.PsiUnnamedClass; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public final class JavaUnnamedClassUtil { - public static boolean isFileWithUnnamedClass(@NotNull PsiFile file) { +public final class JavaImplicitClassUtil { + public static boolean isFileWithImplicitClass(@NotNull PsiFile file) { if (file instanceof PsiJavaFile) { PsiJavaFile javaFile = (PsiJavaFile)file; - if (getUnnamedClassFor(javaFile) != null) return true; + if (getImplicitClassFor(javaFile) != null) return true; } return false; } /** - * Retrieves the unnamed class PSI element from the given PsiFile. + * Retrieves the implicitly declared class PSI element from the given PsiFile. * - * @param file the PsiFile from which to retrieve the unnamed class - * @return the unnamed class if found, null otherwise + * @param file the PsiFile from which to retrieve the implicitly declared class + * @return the implicitly declared class if found, null otherwise */ @Nullable - public static PsiUnnamedClass getUnnamedClassFor(@NotNull PsiFile file) { + public static PsiImplicitClass getImplicitClassFor(@NotNull PsiFile file) { if (file instanceof PsiJavaFile) { final PsiJavaFile javaFile = (PsiJavaFile)file; PsiClass[] classes = javaFile.getClasses(); - if (classes.length == 1 && classes[0] instanceof PsiUnnamedClass) { - return (PsiUnnamedClass)classes[0]; + if (classes.length == 1 && classes[0] instanceof PsiImplicitClass) { + return (PsiImplicitClass)classes[0]; } } return null; } /** - * @param name the name of the unnamed class (might include the ".java" extension) - * @return the JVM name of the unnamed class + * @param name the name of the implicitly declared class (might include the ".java" extension) + * @return the JVM name of the implicitly declared class */ public static String getJvmName(@NotNull String name) { return StringUtil.trimEnd(name, ".java", true); diff --git a/java/java-psi-impl/src/messages/JavaErrorBundle.properties b/java/java-psi-impl/src/messages/JavaErrorBundle.properties index a1fe42e24d58..6ec3cb12ebef 100644 --- a/java/java-psi-impl/src/messages/JavaErrorBundle.properties +++ b/java/java-psi-impl/src/messages/JavaErrorBundle.properties @@ -578,8 +578,8 @@ too.many.array.dimensions=Too many array dimensions error.cannot.infer.pattern.type=Cannot infer pattern type: {0} error.extra.semicolons.between.import.statements.not.allowed=Extra semicolons between import statements are not allowed error.guard.allowed.after.patterns.only=Guard is allowed after patterns only -error.unnamed.class.contains.no.main.method=Unnamed class contains no 'main' method -error.unnamed.class.has.invalid.file.name=Unnamed class's file name is not a valid identifier -error.package.statement.not.allowed.for.unnamed.class=Package statement is not allowed for unnamed class -error.initializers.are.not.allowed.in.unnamed.classes=Initializers are not allowed in unnamed classes +error.implicit.class.contains.no.main.method=Implicitly declared class contains no 'main' method +error.implicit.class.has.invalid.file.name=Implicitly declared class's file name is not a valid identifier +error.package.statement.not.allowed.for.implicit.class=Package statement is not allowed for implicitly declared class +error.initializers.are.not.allowed.in.implicit.classes=Initializers are not allowed in implicitly declared classes remove.unused.imports.quickfix.text=Remove unused imports \ No newline at end of file diff --git a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeElement.java index f8aaef249109..3d8463dfccc4 100644 --- a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeElement.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeElement.java @@ -20,8 +20,8 @@ import com.intellij.ide.structureView.impl.common.PsiTreeElementBase; import com.intellij.navigation.ItemPresentation; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiClassOwner; -import com.intellij.psi.PsiUnnamedClass; -import com.intellij.psi.util.JavaUnnamedClassUtil; +import com.intellij.psi.PsiImplicitClass; +import com.intellij.psi.util.JavaImplicitClassUtil; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -45,10 +45,9 @@ public class JavaFileTreeElement extends PsiTreeElementBase imple PsiClassOwner element = getElement(); if (element == null) return Collections.emptyList(); PsiClass[] classes = element.getClasses(); - - PsiUnnamedClass unnamedClass = JavaUnnamedClassUtil.getUnnamedClassFor(element); - if (unnamedClass != null) { - return JavaClassTreeElement.getClassChildren(unnamedClass); + PsiImplicitClass implicitClass = JavaImplicitClassUtil.getImplicitClassFor(element); + if (implicitClass != null) { + return JavaClassTreeElement.getClassChildren(implicitClass); } ArrayList result = new ArrayList<>(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/HashCodeInMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/HashCodeInMethod.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/HashCodeInMethod.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/HashCodeInMethod.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/HighlightInsufficientLevel.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/HighlightInsufficientLevel.java new file mode 100644 index 000000000000..6f0c5ecaf978 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/HighlightInsufficientLevel.java @@ -0,0 +1,13 @@ +void foo() { + +} + +String s = "asd"; + +static { + +} + +class A { + +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/Incorrect implicit class name with spaces.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/Incorrect implicit class name with spaces.java new file mode 100644 index 000000000000..d53e9e3c03d8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/Incorrect implicit class name with spaces.java @@ -0,0 +1 @@ +void main() {} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/MainWithNonStandardSignature.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/MainWithNonStandardSignature.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/MainWithNonStandardSignature.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/MainWithNonStandardSignature.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/NoMainMethod.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/NoMainMethod.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/NoMainMethod.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/NoMainMethod.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/StaticInitializer.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/StaticInitializer.java new file mode 100644 index 000000000000..1a799cd6e571 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/StaticInitializer.java @@ -0,0 +1,7 @@ +static { + +} + +void main() { + +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/WithPackageStatement.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/WithPackageStatement.java new file mode 100644 index 000000000000..96feea6962b8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/implicitClass/WithPackageStatement.java @@ -0,0 +1,5 @@ +package pack.bar; + +void foo() { + +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/HighlightInsufficientLevel.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/HighlightInsufficientLevel.java deleted file mode 100644 index 3a1462fe8962..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/HighlightInsufficientLevel.java +++ /dev/null @@ -1,13 +0,0 @@ -void foo() { - -} - -String s = "asd"; - -static { - -} - -class A { - -} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/Incorrect unnamed class name with spaces.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/Incorrect unnamed class name with spaces.java deleted file mode 100644 index b5fe258777ea..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/Incorrect unnamed class name with spaces.java +++ /dev/null @@ -1 +0,0 @@ -void main() {} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/StaticInitializer.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/StaticInitializer.java deleted file mode 100644 index dc07d2a60297..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/StaticInitializer.java +++ /dev/null @@ -1,7 +0,0 @@ -static { - -} - -void main() { - -} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/WithPackageStatement.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/WithPackageStatement.java deleted file mode 100644 index c26a1d12caf1..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unnamedClass/WithPackageStatement.java +++ /dev/null @@ -1,5 +0,0 @@ -package pack.bar; - -void foo() { - -} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unusedDecls/UnnamedClassInstanceMainWithoutParams.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unusedDecls/ImplicitClassInstanceMainWithoutParams.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unusedDecls/UnnamedClassInstanceMainWithoutParams.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/unusedDecls/ImplicitClassInstanceMainWithoutParams.java diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/naming/confusing_main_method/ConfusingMainMethodInUnnamedClass.java b/java/java-tests/testData/ig/com/siyeh/igtest/naming/confusing_main_method/ConfusingMainMethodInImplicitClass.java similarity index 100% rename from java/java-tests/testData/ig/com/siyeh/igtest/naming/confusing_main_method/ConfusingMainMethodInUnnamedClass.java rename to java/java-tests/testData/ig/com/siyeh/igtest/naming/confusing_main_method/ConfusingMainMethodInImplicitClass.java diff --git a/java/java-tests/testData/inspection/deadCode/unnamedClass/expected.xml b/java/java-tests/testData/inspection/deadCode/implicitClass/expected.xml similarity index 100% rename from java/java-tests/testData/inspection/deadCode/unnamedClass/expected.xml rename to java/java-tests/testData/inspection/deadCode/implicitClass/expected.xml diff --git a/java/java-tests/testData/inspection/deadCode/unnamedClass/src/Main.java b/java/java-tests/testData/inspection/deadCode/implicitClass/src/Main.java similarity index 100% rename from java/java-tests/testData/inspection/deadCode/unnamedClass/src/Main.java rename to java/java-tests/testData/inspection/deadCode/implicitClass/src/Main.java diff --git a/java/java-tests/testData/inspection/extractMethodRecommender/UnnamedClass.java b/java/java-tests/testData/inspection/extractMethodRecommender/ImplicitClass.java similarity index 100% rename from java/java-tests/testData/inspection/extractMethodRecommender/UnnamedClass.java rename to java/java-tests/testData/inspection/extractMethodRecommender/ImplicitClass.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0.txt index 90929f6a21fd..01b6999ca39b 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0.txt @@ -1,7 +1,7 @@ PsiJavaFile:Errors0.java PsiImportList - PsiUnnamedClass + PsiImplicitClass PsiModifierList:public PsiKeyword:public('public') PsiWhiteSpace(' ') diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0_node.txt index 35d3e8d90c93..85e5cf32d322 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors0_node.txt @@ -1,7 +1,7 @@ java.FILE IMPORT_LIST - UNNAMED_CLASS + IMPLICIT_CLASS MODIFIER_LIST PUBLIC_KEYWORD WHITE_SPACE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod.txt index 9912b5415cdf..8669993da341 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod.txt @@ -1,7 +1,7 @@ PsiJavaFile:ExtraClosingBraceInMethod.java PsiImportList - PsiUnnamedClass + PsiImplicitClass PsiClass:Foo PsiModifierList: diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod_node.txt index 90d31c21c3fe..fbc25e0ab53f 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraClosingBraceInMethod_node.txt @@ -1,7 +1,7 @@ java.FILE IMPORT_LIST - UNNAMED_CLASS + IMPLICIT_CLASS CLASS MODIFIER_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0.txt similarity index 91% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0.txt index 59d5dfff8ff2..2f8ef66d047b 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0.txt @@ -1,7 +1,7 @@ -PsiJavaFile:UnnamedClass0.java +PsiJavaFile:ImplicitClass0.java PsiImportList - PsiUnnamedClass + PsiImplicitClass PsiMethod:foo PsiModifierList: diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0_node.txt similarity index 95% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0_node.txt index e3199a379c8c..c63158bfd75f 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass0_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass0_node.txt @@ -1,7 +1,7 @@ java.FILE IMPORT_LIST - UNNAMED_CLASS + IMPLICIT_CLASS METHOD MODIFIER_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1.txt similarity index 88% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1.txt index 99366528b3db..d5f90aa04ecf 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1.txt @@ -1,7 +1,7 @@ -PsiJavaFile:UnnamedClass1.java +PsiJavaFile:ImplicitClass1.java PsiImportList - PsiUnnamedClass + PsiImplicitClass PsiField:x PsiModifierList: diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1_node.txt similarity index 94% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1_node.txt index 28792cc7e03e..1d8cb042822b 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass1_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass1_node.txt @@ -1,7 +1,7 @@ java.FILE IMPORT_LIST - UNNAMED_CLASS + IMPLICIT_CLASS FIELD MODIFIER_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2.txt similarity index 88% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2.txt index fd5b7d9af0db..d8533a44376b 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2.txt @@ -1,7 +1,7 @@ -PsiJavaFile:UnnamedClass2.java +PsiJavaFile:ImplicitClass2.java PsiImportList - PsiUnnamedClass + PsiImplicitClass PsiClassInitializer PsiModifierList:static PsiKeyword:static('static') diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2_node.txt similarity index 93% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2_node.txt index 97bd37d9b5c1..b79fe96ca916 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass2_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass2_node.txt @@ -1,7 +1,7 @@ java.FILE IMPORT_LIST - UNNAMED_CLASS + IMPLICIT_CLASS CLASS_INITIALIZER MODIFIER_LIST STATIC_KEYWORD diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt similarity index 96% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt index c16808e0be65..2937f7cdd48a 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt @@ -1,4 +1,4 @@ -PsiJavaFile:UnnamedClass3.java +PsiJavaFile:ImplicitClass3.java PsiPackageStatement:pack1.pack2 PsiKeyword:package('package') PsiWhiteSpace(' ') @@ -28,7 +28,7 @@ PsiJavaFile:UnnamedClass3.java PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n\n') - PsiUnnamedClass + PsiImplicitClass PsiMethod:foo PsiModifierList: diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt similarity index 98% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt index 4d3c944eb6e9..d3ddcc17e7e5 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass3_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt @@ -28,7 +28,7 @@ java.FILE SEMICOLON WHITE_SPACE - UNNAMED_CLASS + IMPLICIT_CLASS METHOD MODIFIER_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt similarity index 96% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt index 6fb0ea22783c..73aafad0aa87 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt @@ -1,4 +1,4 @@ -PsiJavaFile:UnnamedClass4.java +PsiJavaFile:ImplicitClass4.java PsiPackageStatement:pack1.pack2 PsiKeyword:package('package') PsiWhiteSpace(' ') @@ -28,7 +28,7 @@ PsiJavaFile:UnnamedClass4.java PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n\n') - PsiUnnamedClass + PsiImplicitClass PsiClass:A PsiModifierList: diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt similarity index 98% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt index e0af396f6521..717fd97b9794 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass4_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt @@ -28,7 +28,7 @@ java.FILE SEMICOLON WHITE_SPACE - UNNAMED_CLASS + IMPLICIT_CLASS CLASS MODIFIER_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.java similarity index 100% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5.java rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.java diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt similarity index 97% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt index e3ae860be6a2..b485ba27e02d 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt @@ -1,4 +1,4 @@ -PsiJavaFile:UnnamedClass5.java +PsiJavaFile:ImplicitClass5.java PsiErrorElement:'class' or 'interface' expected PsiKeyword:package('package') PsiWhiteSpace(' ') @@ -6,7 +6,7 @@ PsiJavaFile:UnnamedClass5.java PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n\n') - PsiUnnamedClass + PsiImplicitClass PsiModifierList:native PsiKeyword:native('native') PsiErrorElement:Identifier or type expected diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt similarity index 98% rename from java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5_node.txt rename to java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt index 9aff7e2814ca..3b6fe14633b6 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/UnnamedClass5_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt @@ -6,7 +6,7 @@ java.FILE SEMICOLON WHITE_SPACE - UNNAMED_CLASS + IMPLICIT_CLASS MODIFIER_LIST NATIVE_KEYWORD ERROR_ELEMENT diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass.txt index 9b3de4e9d7db..75cc99bad7c2 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass.txt @@ -14,7 +14,7 @@ PsiJavaFile:NoClass.java PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n\n') - PsiUnnamedClass + PsiImplicitClass PsiMethod:ClassName PsiModifierList:public PsiKeyword:public('public') diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass_node.txt index 38ac97911ce0..d095db69e3be 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/NoClass_node.txt @@ -14,7 +14,7 @@ java.FILE SEMICOLON WHITE_SPACE - UNNAMED_CLASS + IMPLICIT_CLASS METHOD MODIFIER_LIST PUBLIC_KEYWORD diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnnamedClassHighlightingTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/ImplicitClassHighlightingTest.kt similarity index 82% rename from java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnnamedClassHighlightingTest.kt rename to java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/ImplicitClassHighlightingTest.kt index da3f9d1a71ac..7c0125f9dc6d 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnnamedClassHighlightingTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/ImplicitClassHighlightingTest.kt @@ -6,9 +6,9 @@ import com.intellij.pom.java.LanguageLevel import com.intellij.testFramework.IdeaTestUtil import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase -class UnnamedClassHighlightingTest : LightJavaCodeInsightFixtureTestCase() { +class ImplicitClassHighlightingTest : LightJavaCodeInsightFixtureTestCase() { override fun getProjectDescriptor() = JAVA_21 - override fun getBasePath() = JavaTestUtil.getRelativeJavaTestDataPath() + "/codeInsight/daemonCodeAnalyzer/unnamedClass" + override fun getBasePath() = JavaTestUtil.getRelativeJavaTestDataPath() + "/codeInsight/daemonCodeAnalyzer/implicitClass" fun testHighlightInsufficientLevel() { IdeaTestUtil.withLevel(module, LanguageLevel.JDK_20, Runnable { @@ -28,7 +28,7 @@ class UnnamedClassHighlightingTest : LightJavaCodeInsightFixtureTestCase() { doTest() } - fun `testIncorrect unnamed class name with spaces`() { + fun `testIncorrect implicit class name with spaces`() { doTest() } diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/MoveMembersFixTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/MoveMembersFixTest.kt index 3751b59f0a5a..6d773d13be62 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/MoveMembersFixTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/MoveMembersFixTest.kt @@ -8,7 +8,7 @@ import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase class MoveMembersFixTest : LightJavaCodeInsightFixtureTestCase() { override fun getProjectDescriptor() = JAVA_21 - override fun getBasePath() = JavaTestUtil.getRelativeJavaTestDataPath() + "/codeInsight/daemonCodeAnalyzer/unnamedClass" + override fun getBasePath() = JavaTestUtil.getRelativeJavaTestDataPath() + "/codeInsight/daemonCodeAnalyzer/implicitClass" fun testHighlightInsufficientLevel() { IdeaTestUtil.withLevel(module, LanguageLevel.JDK_20, Runnable { diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnusedSymbolLocalTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnusedSymbolLocalTest.java index 1c503284990b..451ffee8d399 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnusedSymbolLocalTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/UnusedSymbolLocalTest.java @@ -41,7 +41,7 @@ public class UnusedSymbolLocalTest extends DaemonAnalyzerTestCase { public void testInnerUsesSelf() throws Exception { doTest(); } public void testLocalClass() throws Exception { doTest(); } public void testPrivateConstructor() throws Exception { doTest(); } - public void testUnnamedClassInstanceMainWithoutParams() { + public void testImplicitClassInstanceMainWithoutParams() { IdeaTestUtil.withLevel(myModule, LanguageLevel.JDK_21_PREVIEW, () -> { try { doTest(); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/RunLineMarkerJava21Test.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/RunLineMarkerJava21Test.java index 13c209754890..c0a5ea77c3f1 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/RunLineMarkerJava21Test.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/RunLineMarkerJava21Test.java @@ -10,7 +10,7 @@ import java.util.List; public class RunLineMarkerJava21Test extends LightJavaCodeInsightFixtureTestCase { - public void testUnnamedAllowsNonStatic() { + public void testImplicitAllowsNonStatic() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { myFixture.configureByText("MainTest.java", """ void main() { @@ -59,7 +59,7 @@ public class RunLineMarkerJava21Test extends LightJavaCodeInsightFixtureTestCase }); } - public void testMainInsideInnerClassInUnnamedClassHasNoGutter() { + public void testMainInsideInnerClassInImplicitClassHasNoGutter() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { myFixture.configureByText("MainTest.java", """ void foo() { diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedDeclarationInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedDeclarationInspectionTest.java index 408c6621a5d7..619ea43f52e7 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedDeclarationInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/UnusedDeclarationInspectionTest.java @@ -277,7 +277,7 @@ public class UnusedDeclarationInspectionTest extends AbstractUnusedDeclarationTe public void testJunitMethodSource() {doTest();} - public void testUnnamedClass() { + public void testImplicitClass() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { doTest(); }); diff --git a/java/java-tests/testSrc/com/intellij/java/psi/JavaPsiTest.kt b/java/java-tests/testSrc/com/intellij/java/psi/JavaPsiTest.kt index afd58e516436..80d87f07628b 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/JavaPsiTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/psi/JavaPsiTest.kt @@ -364,7 +364,7 @@ class B {}""" assertEquals("int", parameter.typeElement!!.text) } - fun testUnnamedFile() { + fun testImplicitFile() { val file = configureFile( """ void myMethod() { @@ -377,17 +377,17 @@ class B {}""" int field; """.trimIndent()) - val unnamedClass = file.classes.single() as PsiUnnamedClass - TestCase.assertNull(unnamedClass.name) - val method = unnamedClass.methods.single() + val implicitClass = file.classes.single() as PsiImplicitClass + TestCase.assertNull(implicitClass.name) + val method = implicitClass.methods.single() TestCase.assertEquals("myMethod", method.name) - val aClass = unnamedClass.innerClasses.single() + val aClass = implicitClass.innerClasses.single() TestCase.assertEquals("A", aClass.name) - val field = unnamedClass.fields.single() + val field = implicitClass.fields.single() TestCase.assertEquals("field", field.name) - TestCase.assertEquals(CommonClassNames.JAVA_LANG_OBJECT, unnamedClass.superClass!!.qualifiedName) - TestCase.assertEquals("Object", unnamedClass.superClassType!!.name) - InheritanceUtil.isInheritor(unnamedClass, CommonClassNames.JAVA_LANG_OBJECT) + TestCase.assertEquals(CommonClassNames.JAVA_LANG_OBJECT, implicitClass.superClass!!.qualifiedName) + TestCase.assertEquals("Object", implicitClass.superClassType!!.name) + InheritanceUtil.isInheritor(implicitClass, CommonClassNames.JAVA_LANG_OBJECT) } private fun configureFile(@Language("JAVA") text: String): PsiJavaFile { diff --git a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy index 41947650a9b2..3c63f57e4ab0 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy @@ -387,7 +387,7 @@ class JavaStubsTest extends LightJavaCodeInsightFixtureTestCase { def file = myFixture.addFileToProject("a.java", "class A extends B. { int a; }") WriteCommandAction.runWriteCommandAction(project) { def javaFile = file as PsiJavaFile - def clazz = (javaFile.classes[0] as PsiUnnamedClass).innerClasses[0] + def clazz = (javaFile.classes[0] as PsiImplicitClass).innerClasses[0] clazz.extendsList.referenceElements[0].delete() } PsiTestUtil.checkStubsMatchText(file) @@ -418,7 +418,7 @@ class JavaStubsTest extends LightJavaCodeInsightFixtureTestCase { def file = myFixture.addFileToProject("a.java", "class A extends.ends Foo { int a; }") WriteCommandAction.runWriteCommandAction(project) { def javaFile = file as PsiJavaFile - def clazz = (javaFile.classes[0] as PsiUnnamedClass).innerClasses[0] + def clazz = (javaFile.classes[0] as PsiImplicitClass).innerClasses[0] clazz.extendsList.add(JavaPsiFacade.getElementFactory(project).createReferenceElementByFQClassName(CommonClassNames.JAVA_LANG_OBJECT, file.resolveScope)) } PsiTestUtil.checkStubsMatchText(file) @@ -463,7 +463,8 @@ class JavaStubsTest extends LightJavaCodeInsightFixtureTestCase { assert !(file as PsiFileImpl).contentsLoaded } - void "test unnamed class"() { + void "test implicit class"() { + def psiFile = myFixture.addFileToProject("a.java", """\ void test() { } diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTest.kt b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTest.kt index decb78a661fd..0c1cd0535112 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTest.kt @@ -4117,7 +4117,7 @@ public enum LevelCode { ) } - fun testFormattingUnnamedClassMembers() { + fun testFormattingImplicitClassMembers() { doTextTest( """ void before() { diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java index 14922d60c499..39aa5c4b8d94 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java @@ -251,7 +251,7 @@ public class InplaceIntroduceVariableTest extends AbstractJavaInplaceIntroduceTe doTest(null); fail("Refactoring should not be performed"); } catch (CommonRefactoringUtil.RefactoringErrorHintException e) { - assertEquals("Cannot perform refactoring.\n" + JavaRefactoringBundle.message("introduce.variable.message.cannot.extract.in.unnamed.class"), e.getMessage()); + assertEquals("Cannot perform refactoring.\n" + JavaRefactoringBundle.message("introduce.variable.message.cannot.extract.in.implicit.class"), e.getMessage()); } } diff --git a/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java b/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java index b94e78f3c6f4..12d025031c5e 100644 --- a/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java +++ b/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java @@ -354,7 +354,7 @@ public class JavaStructureViewTest extends LightJavaStructureViewTestCaseBase { ); } - public void testUnnamedClass() { + public void testImplicitClass() { doTest( """ void foo() { diff --git a/java/java-tests/testSrc/com/intellij/refactoring/extractMethod/ExtractMethodRecommenderInspectionTest.java b/java/java-tests/testSrc/com/intellij/refactoring/extractMethod/ExtractMethodRecommenderInspectionTest.java index 613bfcc8d065..6945302c4642 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/extractMethod/ExtractMethodRecommenderInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/extractMethod/ExtractMethodRecommenderInspectionTest.java @@ -15,7 +15,7 @@ public class ExtractMethodRecommenderInspectionTest extends LightJavaCodeInsight myFixture.checkHighlighting(); } - public void testUnnamedClass() { + public void testImplicitClass() { ExtractMethodRecommenderInspection inspection = new ExtractMethodRecommenderInspection(); myFixture.enableInspections(inspection); myFixture.configureByFile(getTestName(false) + ".java"); diff --git a/java/java-tests/testSrc/com/siyeh/ig/naming/ConfusingMainMethodInspectionTest.java b/java/java-tests/testSrc/com/siyeh/ig/naming/ConfusingMainMethodInspectionTest.java index b1390bc85afc..43a4490d5e53 100644 --- a/java/java-tests/testSrc/com/siyeh/ig/naming/ConfusingMainMethodInspectionTest.java +++ b/java/java-tests/testSrc/com/siyeh/ig/naming/ConfusingMainMethodInspectionTest.java @@ -21,7 +21,7 @@ public class ConfusingMainMethodInspectionTest extends LightJavaInspectionTestCa doTest(); } - public void testConfusingMainMethodInUnnamedClass() { + public void testConfusingMainMethodInImplicitClass() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { doTest(); }); diff --git a/java/openapi/resources/messages/JavaRefactoringBundle.properties b/java/openapi/resources/messages/JavaRefactoringBundle.properties index 56a6c623f9b1..9f5e253f2980 100644 --- a/java/openapi/resources/messages/JavaRefactoringBundle.properties +++ b/java/openapi/resources/messages/JavaRefactoringBundle.properties @@ -816,7 +816,7 @@ dialog.title.confirm.move=Confirm Move dialog.message.moving.directories.to=Moving directories to ''{0}'' progress.title.collect.hierarchy=Collect ''{0}'' hierarchy introduce.variable.message.expression.refers.to.pattern.variable.declared.outside=The expression refers to the pattern variable ''{0}'' declared outside -introduce.variable.message.cannot.extract.in.unnamed.class=Cannot extract in unnamed class +introduce.variable.message.cannot.extract.in.implicit.class=Cannot extract in implicitly declared class tooltip.cannot.inline.pattern.variable=Cannot inline pattern variable inline.popup.highlight=Highlight {0} conflicting {0, choice, 1#write|2#writes} inline.popup.ignore.conflicts=Ignore writes and continue diff --git a/platform/execution/resources/messages/ExecutionBundle.properties b/platform/execution/resources/messages/ExecutionBundle.properties index 878d2147efaa..cd59fab0c1cf 100644 --- a/platform/execution/resources/messages/ExecutionBundle.properties +++ b/platform/execution/resources/messages/ExecutionBundle.properties @@ -386,7 +386,7 @@ service.view.configure.run.configuration.types=Run/Debug Configuration Types service.view.configure.run.tool.windows=Run/Debug application.configuration.include.provided.scope=Add dependencies with \u201Cprovided\u201D scope to classpath -application.configuration.is.unnamed.class=Unnamed class run configuration +application.configuration.is.implicit.class=Implicitly declared class run configuration application.configuration.title.run=Run application.configuration.title.build.and.run=Build and run test.cases.choosing.popup.title=Run Implementations of {0} diff --git a/platform/refactoring/resources/messages/RefactoringBundle.properties b/platform/refactoring/resources/messages/RefactoringBundle.properties index 6e6d1077d171..e036fae84f45 100644 --- a/platform/refactoring/resources/messages/RefactoringBundle.properties +++ b/platform/refactoring/resources/messages/RefactoringBundle.properties @@ -10,8 +10,8 @@ error.wrong.caret.position.method.or.class.name=Caret should be positioned at th error.wrong.caret.position.method.or.variable.name=Caret should be positioned at the name of method or variable to be refactored error.wrong.caret.position.class=Caret should be positioned inside class to be refactored error.select.class.to.be.refactored=Cannot perform the refactoring.\nThe refactoring should be invoked on the class or members to be refactored. -error.interface.cannot.be.extracted.from.unnamed.class=Cannot perform the refactoring.\nCannot extract interface from unnamed class -error.superclass.cannot.be.extracted.from.unnamed.class=Cannot perform the refactoring.\nCannot extract superclass from unnamed class +error.interface.cannot.be.extracted.from.implicit.class=Cannot perform the refactoring.\nCannot extract interface from implicitly declared class +error.superclass.cannot.be.extracted.from.implicit.class=Cannot perform the refactoring.\nCannot extract superclass from implicitly declared class error.wrong.caret.position.method.or.local.name=Caret should be positioned at the name of element to be refactored error.wrong.caret.position.symbol.to.rename=Caret should be positioned at symbol to be renamed error.wrong.caret.position.symbol.to.refactor=Caret should be positioned at symbol to be refactored diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt index 16723a3b677c..088ab96efa92 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt @@ -17,12 +17,7 @@ import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.util.Ref -import com.intellij.psi.PsiDocumentManager -import com.intellij.psi.PsiErrorElement -import com.intellij.psi.PsiFile -import com.intellij.psi.PsiFileFactory -import com.intellij.psi.PsiJavaFile -import com.intellij.psi.PsiUnnamedClass +import com.intellij.psi.* import com.intellij.refactoring.suggested.range import com.intellij.util.LocalTimeCounter import org.jetbrains.annotations.TestOnly @@ -247,12 +242,12 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor