[java-inspections] IJ-CR-123164 IDEA-341641 Intention to convert implicit class to explicit and vice versa

- more tests
- small optimization
- preserve first comment in created implicitly declared classes
- fixed java docs
- move highlighting to the whole declaration

GitOrigin-RevId: e7ea706151f09852473e31d3831bb3008da62475
This commit is contained in:
Mikhail Pyltsin
2024-01-09 09:56:53 +01:00
committed by intellij-monorepo-bot
parent d3b1e47df7
commit 858b2cd664
14 changed files with 94 additions and 28 deletions

View File

@@ -142,13 +142,17 @@ public class PsiJavaParserFacadeImpl implements PsiJavaParserFacade {
@NotNull
@Override
public PsiImplicitClass createImplicitClassFromText(@NotNull String body, @Nullable PsiElement context) throws IncorrectOperationException {
PsiJavaFile aFile = createDummyJavaFile(body);
PsiJavaFile aFile = createDummyJavaFile(
"int i = 0;" + //used to preserve first comments
body);
PsiClass[] classes = aFile.getClasses();
if (classes.length != 1) {
throw new IncorrectOperationException("Incorrect class '" + body + "'");
}
if (classes[0] instanceof PsiImplicitClass) {
return (PsiImplicitClass)classes[0];
PsiImplicitClass implicitClass = (PsiImplicitClass)classes[0];
implicitClass.getFirstChild().delete(); //delete stub field
return implicitClass;
}
throw new IncorrectOperationException("Incorrect implicit class '" + body + "'");
}