From 53489602f1e862dbe57f2651ba4d8854c9a9dc41 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 12 Sep 2025 15:06:35 +0200 Subject: [PATCH] [java] cleanup: use getLast/getFirst/etc. GitOrigin-RevId: e77d2952e8d83aedd00784a2b3290c6c92460717 --- .../core/JavaPatternExhaustivenessUtil.java | 4 +-- .../impl/artifacts/ArtifactUtil.java | 2 +- .../intellij/debugger/engine/JVMNameUtil.java | 16 +++++----- .../breakpoints/JavaLineBreakpointType.java | 4 +-- .../FrameworkVersionComponent.java | 2 +- .../util/projectWizard/ProjectNameStep.java | 2 +- .../sourceItems/ModuleGroupItem.java | 2 +- .../bytecodeAnalysis/Combined.java | 2 +- .../util/duplicates/DuplicatesFinder.java | 2 +- ...tementWithIdenticalBranchesInspection.java | 4 +-- .../siyeh/ig/format/MessageFormatUtil.java | 6 ++-- ...intlessArithmeticExpressionInspection.java | 14 ++++---- .../com/siyeh/ig/psiutils/CommentTracker.java | 2 +- ...rderedAssertEqualsArgumentsInspection.java | 2 +- .../moveUpDown/JavaCaseBlockMover.java | 4 +-- .../CodeBlockOrInitializerSelectioner.java | 2 +- .../formatter/java/SyntheticCodeBlock.java | 17 +++++----- ...ingTemplateReverseMigrationInspection.java | 2 +- .../optionalToIf/IntermediateOperation.java | 4 +-- .../streamMigration/JoiningMigration.java | 32 +++++++++---------- .../streamToLoop/StreamToLoopInspection.java | 4 +-- .../FieldCanBeLocalInspection.java | 4 +-- .../ExtractMethodObjectProcessor.java | 2 +- .../IntroduceParameterHandler.java | 2 +- .../memberPushDown/PushDownConflicts.java | 2 +- .../refactoring/typeMigration/Util.java | 2 +- .../completion/JavaKeywordCompletion.java | 2 +- .../codeInsight/completion/MethodTags.java | 2 +- .../impl/quickfix/StaticMembersProcessor.java | 4 +-- .../generation/GenerateMembersUtil.java | 2 +- .../ExtractSetFromComparisonChainAction.java | 20 ++++++------ .../impl/MoveIntoIfBranchesAction.java | 12 +++---- .../EnhancedSwitchMigrationInspection.java | 4 +-- .../ExcessiveRangeCheckInspection.java | 8 ++--- ...ngBufferReplaceableByStringInspection.java | 4 +-- .../WhileCanBeDoWhileInspection.java | 2 +- .../MissingFinalNewlineInspection.java | 2 +- .../java/library/JavaLibraryUtil.java | 2 +- .../structuralsearch/JavaReplaceHandler.java | 4 +-- .../JavaStructuralSearchProfile.java | 4 +-- .../matcher/predicates/ExprTypePredicate.java | 2 +- .../src/com/intellij/JavaTestUtil.java | 5 +-- .../intellij/unscramble/UnscrambleDialog.java | 2 +- 43 files changed, 109 insertions(+), 113 deletions(-) diff --git a/java/codeserver/core/src/com/intellij/java/codeserver/core/JavaPatternExhaustivenessUtil.java b/java/codeserver/core/src/com/intellij/java/codeserver/core/JavaPatternExhaustivenessUtil.java index 2a0de4f71e19..5bf46eab9d24 100644 --- a/java/codeserver/core/src/com/intellij/java/codeserver/core/JavaPatternExhaustivenessUtil.java +++ b/java/codeserver/core/src/com/intellij/java/codeserver/core/JavaPatternExhaustivenessUtil.java @@ -638,7 +638,7 @@ public final class JavaPatternExhaustivenessUtil { ClassWithDependencies peeked = nonVisited.peek(); if (!visited.add(peeked)) continue; PsiClass psiClass = peeked.mainClass; - PsiClass selectorClass = peeked.dependencies.get(peeked.dependencies.size() - 1); + PsiClass selectorClass = peeked.dependencies.getLast(); PsiElementFactory factory = JavaPsiFacade.getElementFactory(psiClass.getProject()); if (sealedUpperClasses.contains(psiClass) || //used to generate missed classes when the switch is empty @@ -786,7 +786,7 @@ public final class JavaPatternExhaustivenessUtil { /** * Pattern descriptor */ - sealed private interface PatternDescriptor permits PatternDeconstructionDescriptor, PatternTypeTestDescriptor { + private sealed interface PatternDescriptor permits PatternDeconstructionDescriptor, PatternTypeTestDescriptor { @NotNull PsiType type(); } diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactUtil.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactUtil.java index 91a8b386b4fb..0ac33dff4d47 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactUtil.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactUtil.java @@ -519,7 +519,7 @@ public final class ArtifactUtil { } if (!parents.isEmpty()) { - CompositePackagingElement lastParent = parents.get(parents.size() - 1); + CompositePackagingElement lastParent = parents.getLast(); if (lastParent instanceof ArtifactRootElement && !processor.process(lastParent, currentPath, anArtifact)) { return false; } 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 4d50ae8fae16..4fdbc6d6cbca 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/JVMNameUtil.java @@ -123,16 +123,16 @@ public final class JVMNameUtil { public JVMName toName() { final List optimised = new ArrayList<>(); for (JVMName evaluator : myList) { - if (evaluator instanceof JVMRawText && !optimised.isEmpty() && - optimised.get(optimised.size() - 1) instanceof JVMRawText nameEvaluator) { - nameEvaluator.setName(nameEvaluator.getName() + ((JVMRawText)evaluator).getName()); + if (evaluator instanceof JVMRawText rawText && !optimised.isEmpty() && + optimised.getLast() instanceof JVMRawText nameEvaluator) { + nameEvaluator.setName(nameEvaluator.getName() + rawText.getName()); } else { optimised.add(evaluator); } } - if (optimised.size() == 1) return optimised.get(0); + if (optimised.size() == 1) return optimised.getFirst(); if (optimised.isEmpty()) return new JVMRawText(""); return new JVMName() { @@ -173,7 +173,7 @@ public final class JVMNameUtil { } @Override - public String getName(DebugProcessImpl process) throws EvaluateException { + public String getName(DebugProcessImpl process) { return myText; } @@ -227,7 +227,7 @@ public final class JVMNameUtil { } } if (!allClasses.isEmpty()) { - return allClasses.get(0).name(); + return allClasses.getFirst().name(); } throw EvaluateExceptionUtil.createEvaluateException(JavaDebuggerBundle.message("error.class.not.loaded", getDisplayName(process))); @@ -388,7 +388,7 @@ public final class JVMNameUtil { if (res.second && debugProcess != null && debugProcess.isAttached()) { List allClasses = debugProcess.getPositionManager().getAllClasses(position); if (!allClasses.isEmpty()) { - return allClasses.get(0).name(); + return allClasses.getFirst().name(); } } return res.first; @@ -463,7 +463,7 @@ public final class JVMNameUtil { if (res == null && debugProcess != null && debugProcess.isAttached()) { List allClasses = debugProcess.getPositionManager().getAllClasses(position); if (!allClasses.isEmpty()) { - final String className = allClasses.get(0).name(); + final String className = allClasses.getFirst().name(); int dotIndex = className.lastIndexOf('.'); if (dotIndex >= 0) { return className.substring(0, dotIndex); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaLineBreakpointType.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaLineBreakpointType.java index d30a0b7f3003..8d3bb083870c 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaLineBreakpointType.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaLineBreakpointType.java @@ -166,7 +166,7 @@ public class JavaLineBreakpointType extends JavaLineBreakpointTypeBase= 2) { // Return at the end of the method is likely to be implicitly generated, // it is not the conditional return we were looking for, drop it. - visitor.returnOffsets.remove(visitor.returnOffsets.size() - 1); + visitor.returnOffsets.removeLast(); } return visitor.returnOffsets.stream().map(offs -> method.locationOfCodeIndex(offs)); } diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkVersionComponent.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkVersionComponent.java index d336fb1c6892..c18b55b0d375 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkVersionComponent.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkVersionComponent.java @@ -63,7 +63,7 @@ public class FrameworkVersionComponent { } myVersionsPanel.setVisible(!versions.isEmpty()); if (!versions.isEmpty()) { - FrameworkVersion toSelect = oldSelection != null && versions.contains(oldSelection) ? oldSelection : versions.get(versions.size() - 1); + FrameworkVersion toSelect = oldSelection != null && versions.contains(oldSelection) ? oldSelection : versions.getLast(); myVersionsBox.setSelectedItem(toSelect); myModel.setSelectedVersion(myFrameworkOrGroupId, toSelect); } diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectNameStep.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectNameStep.java index 34adab6d48b7..c7cc32d4905c 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectNameStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/ProjectNameStep.java @@ -73,7 +73,7 @@ public final class ProjectNameStep extends ModuleWizardStep { if (name == null) { List components = StringUtil.split(FileUtil.toSystemIndependentName(myWizardContext.getProjectFileDirectory()), "/"); if (!components.isEmpty()) { - name = components.get(components.size()-1); + name = components.getLast(); } } myNamePathComponent.setNameValue(name); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ModuleGroupItem.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ModuleGroupItem.java index 28af0be226d5..e3e732c5c515 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ModuleGroupItem.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/ModuleGroupItem.java @@ -22,7 +22,7 @@ public class ModuleGroupItem extends PackagingSourceItem { public ModuleGroupItem(@NotNull List<@NlsSafe String> path) { super(false); - myGroupName = path.get(path.size() - 1); + myGroupName = path.getLast(); myPath = path; } diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Combined.java b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Combined.java index 1081c23a1195..47670a688378 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Combined.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/bytecodeAnalysis/Combined.java @@ -587,7 +587,7 @@ final class CombinedInterpreter extends BasicInterpreter { boolean stable = opCode == INVOKESTATIC || opCode == INVOKESPECIAL; boolean thisCall = false; if (opCode != INVOKESTATIC) { - BasicValue receiver = values.remove(0); + BasicValue receiver = values.removeFirst(); if (receiver instanceof NthParamValue) { dereferencedParams[((NthParamValue)receiver).n] = true; } diff --git a/java/java-analysis-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java b/java/java-analysis-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java index 9ad0db0a922b..60c4900df3a6 100644 --- a/java/java-analysis-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java +++ b/java/java-analysis-impl/src/com/intellij/refactoring/util/duplicates/DuplicatesFinder.java @@ -220,7 +220,7 @@ public final class DuplicatesFinder { } } - final Match match = new Match(candidates.get(0), candidates.get(candidates.size() - 1), ignoreParameterTypesAndPostVariableUsages); + final Match match = new Match(candidates.getFirst(), candidates.getLast(), ignoreParameterTypesAndPostVariableUsages); for (int i = 0; i < myPattern.length; i++) { if (!matchPattern(myPattern[i], candidates.get(i), candidates, match)) return null; } diff --git a/java/java-analysis-impl/src/com/siyeh/ig/controlflow/IfStatementWithIdenticalBranchesInspection.java b/java/java-analysis-impl/src/com/siyeh/ig/controlflow/IfStatementWithIdenticalBranchesInspection.java index 682d931351ff..7088ceedf1ff 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/controlflow/IfStatementWithIdenticalBranchesInspection.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/controlflow/IfStatementWithIdenticalBranchesInspection.java @@ -662,7 +662,7 @@ public final class IfStatementWithIdenticalBranchesInspection extends AbstractBa if (JavaKeywords.RETURN.equals(jumpKeyword)) { if (!(parent.getParent() instanceof PsiMethod)) return null; if (!statements.isEmpty()) { - if (PsiTreeUtil.getNextSiblingOfType(statements.get(statements.size() - 1), PsiStatement.class) != null) return null; + if (PsiTreeUtil.getNextSiblingOfType(statements.getLast(), PsiStatement.class) != null) return null; } } if (JavaKeywords.CONTINUE.equals(jumpKeyword) && !(parent.getParent() instanceof PsiBlockStatement) && !(parent.getParent().getParent() instanceof PsiLoopStatement)) return null; @@ -727,7 +727,7 @@ public final class IfStatementWithIdenticalBranchesInspection extends AbstractBa if (implicitElse == null) return null; if (implicitElse.myImplicitElseStatements.isEmpty()) return null; if (implicitElse.myImplicitElseStatements.size() == 1) { - PsiStatement statement = implicitElse.myImplicitElseStatements.get(0); + PsiStatement statement = implicitElse.myImplicitElseStatements.getFirst(); if (statement instanceof PsiReturnStatement) { if (((PsiReturnStatement)statement).getReturnValue() == null) return null; } diff --git a/java/java-analysis-impl/src/com/siyeh/ig/format/MessageFormatUtil.java b/java/java-analysis-impl/src/com/siyeh/ig/format/MessageFormatUtil.java index 7cb44133d5df..86ef2daf0d9d 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/format/MessageFormatUtil.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/format/MessageFormatUtil.java @@ -339,7 +339,7 @@ public final class MessageFormatUtil { if (holder.errors.isEmpty()) { List notStrings = ContainerUtil.filter(holder.parts, t -> !(t.getParsedType() == MessageFormatParsedType.STRING && t.getText().isEmpty())); - if (notStrings.size() == 1 && notStrings.get(0).getParsedType() == MessageFormatParsedType.FORMAT_ELEMENT) { + if (notStrings.size() == 1 && notStrings.getFirst().getParsedType() == MessageFormatParsedType.FORMAT_ELEMENT) { return nextQuote + current; } } @@ -382,7 +382,7 @@ public final class MessageFormatUtil { currentSelector = ChoiceFormat.nextDouble(currentSelector); } if (!selectors.isEmpty()) { - Double previousSelector = selectors.get(selectors.size() - 1); + Double previousSelector = selectors.getLast(); if (previousSelector >= currentSelector) { holder.addError(MessageFormatErrorType.INCORRECT_ORDER_CHOICE_SELECTOR, holder.current - selector.length(), holder.current); } @@ -643,7 +643,7 @@ public final class MessageFormatUtil { } private @NotNull MessageFormatPart getLastPart() { - return parts.get(parts.size() - 1); + return parts.getLast(); } private void startFormatElement(char ch) { diff --git a/java/java-analysis-impl/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java b/java/java-analysis-impl/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java index 74a6795c25d0..f5e8245815cd 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java @@ -81,8 +81,8 @@ public final class PointlessArithmeticExpressionInspection extends BaseInspectio final PsiJavaToken token = expression.getTokenBeforeOperand(operands[1]); assert token != null; String prefix = ""; - if (isZero(expressions.get(0)) && expressions.size() > 1 && JavaTokenType.MINUS == token.getTokenType()) { - expressions.remove(0); + if (isZero(expressions.getFirst()) && expressions.size() > 1 && JavaTokenType.MINUS == token.getTokenType()) { + expressions.removeFirst(); prefix = "- "; } final String delimiter = " " + token.getText() + " "; @@ -105,15 +105,15 @@ public final class PointlessArithmeticExpressionInspection extends BaseInspectio continue; } else if (tokenType.equals(JavaTokenType.MINUS) && !expressions.isEmpty() && - EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(expressions.get(0), operand)) { - expressions.remove(0); - expressions.add(0, factory.createExpressionFromText(numberAsText(0, type), operand)); + EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(expressions.getFirst(), operand)) { + expressions.removeFirst(); + expressions.addFirst(factory.createExpressionFromText(numberAsText(0, type), operand)); continue; } else if (tokenType.equals(JavaTokenType.DIV) && EquivalenceChecker.getCanonicalPsiEquivalence().expressionsAreEquivalent(ContainerUtil.getLastItem(expressions), operand)) { - expressions.remove(expressions.size() - 1); - expressions.add(factory.createExpressionFromText(numberAsText(1, type), operand)); + expressions.removeLast(); + expressions.addLast(factory.createExpressionFromText(numberAsText(1, type), operand)); continue; } else if (tokenType.equals(JavaTokenType.ASTERISK) && isZero(operand) || diff --git a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CommentTracker.java b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CommentTracker.java index 5b7cc6e326e2..e3f97c5167be 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CommentTracker.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/CommentTracker.java @@ -402,7 +402,7 @@ public final class CommentTracker { addIgnored(comment); trailingComments.add(comment.copy()); } - if (isEndOfLineComment(trailingComments.get(trailingComments.size() - 1))) { + if (isEndOfLineComment(trailingComments.getLast())) { PsiElement next = expression.getNextSibling(); if (next instanceof PsiErrorElement) next = next.getNextSibling(); if (isEndOfLineComment(next) || diff --git a/java/java-analysis-impl/src/com/siyeh/ig/testFrameworks/MisorderedAssertEqualsArgumentsInspection.java b/java/java-analysis-impl/src/com/siyeh/ig/testFrameworks/MisorderedAssertEqualsArgumentsInspection.java index 022c2c650cfc..268027ed45af 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/testFrameworks/MisorderedAssertEqualsArgumentsInspection.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/testFrameworks/MisorderedAssertEqualsArgumentsInspection.java @@ -84,7 +84,7 @@ public final class MisorderedAssertEqualsArgumentsInspection extends BaseInspect final List expressions = new SmartList<>(); expressions.add(expression); while (!expressions.isEmpty()) { - expressions.remove(expressions.size() - 1).accept(new JavaRecursiveElementWalkingVisitor() { + expressions.removeLast().accept(new JavaRecursiveElementWalkingVisitor() { @Override public void visitReferenceExpression(@NotNull PsiReferenceExpression referenceExpression) { if (!expectedArgument.get().booleanValue()) { diff --git a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/JavaCaseBlockMover.java b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/JavaCaseBlockMover.java index 66f48f88060c..870266db82ca 100644 --- a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/JavaCaseBlockMover.java +++ b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/moveUpDown/JavaCaseBlockMover.java @@ -39,8 +39,8 @@ public final class JavaCaseBlockMover extends LineMover { if (statements.isEmpty()) return false; if (firstElement != null) return info.prohibitMove(); // nonsensical selection - PsiSwitchLabelStatement firstToMove = getThisCaseBlockStart(statements.get(0)); - PsiSwitchLabelStatement lastStatement = statements.get(statements.size() - 1); + PsiSwitchLabelStatement firstToMove = getThisCaseBlockStart(statements.getFirst()); + PsiSwitchLabelStatement lastStatement = statements.getLast(); PsiElement nextCaseBlockStart = getNextCaseBlockStart(lastStatement); PsiElement lastToMove = PsiTreeUtil.skipWhitespacesBackward(nextCaseBlockStart); assert lastToMove != null; diff --git a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/wordSelection/CodeBlockOrInitializerSelectioner.java b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/wordSelection/CodeBlockOrInitializerSelectioner.java index 92b13de0be61..f724c12310f2 100644 --- a/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/wordSelection/CodeBlockOrInitializerSelectioner.java +++ b/java/java-frontback-impl/src/com/intellij/codeInsight/editorActions/wordSelection/CodeBlockOrInitializerSelectioner.java @@ -79,7 +79,7 @@ public final class CodeBlockOrInitializerSelectioner extends AbstractBasicBackBa } public static int findClosingBrace(List children, int startOffset) { - int end = children.get(children.size() - 1).getTextRange().getEndOffset(); + int end = children.getLast().getTextRange().getEndOffset(); for (int i = 0; i < children.size(); i++) { ASTNode child = children.get(i); diff --git a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java index 9b50c095fec1..f17612045e95 100644 --- a/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java +++ b/java/java-frontback-impl/src/com/intellij/psi/formatter/java/SyntheticCodeBlock.java @@ -48,8 +48,8 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ myAlignment = alignment; mySettings = settings; myWrap = wrap; - myTextRange = new TextRange(mySubBlocks.get(0).getTextRange().getStartOffset(), - mySubBlocks.get(mySubBlocks.size() - 1).getTextRange().getEndOffset()); + myTextRange = new TextRange(mySubBlocks.getFirst().getTextRange().getStartOffset(), + mySubBlocks.getLast().getTextRange().getEndOffset()); } @Override @@ -85,13 +85,13 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ @Override public String toString() { ASTNode treeNode = null; - Block child = mySubBlocks.get(0); + Block child = mySubBlocks.getFirst(); while (treeNode == null) { if (child instanceof AbstractBlock) { treeNode = ((AbstractBlock)child).getNode(); } else if (child instanceof SyntheticCodeBlock) { - child = ((SyntheticCodeBlock)child).mySubBlocks.get(0); + child = ((SyntheticCodeBlock)child).mySubBlocks.getFirst(); } else { break; @@ -112,7 +112,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ @Override public @Nullable ASTNode getFirstTreeNode() { - return AbstractJavaBlock.getTreeNode(mySubBlocks.get(0)); + return AbstractJavaBlock.getTreeNode(mySubBlocks.getFirst()); } public void setChildAttributes(final ChildAttributes childAttributes) { @@ -160,7 +160,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ private static boolean isDotFirst(final Block block) { Block current = block; while (!current.getSubBlocks().isEmpty()) { - current = current.getSubBlocks().get(0); + current = current.getSubBlocks().getFirst(); } ASTNode node = current instanceof LeafBlock ? ((LeafBlock)current).getNode() : null; return node != null && node.getElementType() == JavaTokenType.DOT; @@ -170,8 +170,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ Block rightMost = null; List subBlocks = getSubBlocks(); while (!subBlocks.isEmpty()) { - int lastIndex = subBlocks.size() - 1; - rightMost = subBlocks.get(lastIndex); + rightMost = subBlocks.getLast(); subBlocks = rightMost.getSubBlocks(); } return rightMost; @@ -180,7 +179,7 @@ public class SyntheticCodeBlock implements Block, JavaBlock{ @Override public boolean isIncomplete() { if (myIsIncomplete) return true; - return getSubBlocks().get(getSubBlocks().size() - 1).isIncomplete(); + return getSubBlocks().getLast().isIncomplete(); } @Override diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/StringTemplateReverseMigrationInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/StringTemplateReverseMigrationInspection.java index 449de04f4cf6..db71e5c44a6f 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/StringTemplateReverseMigrationInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/StringTemplateReverseMigrationInspection.java @@ -87,7 +87,7 @@ public final class StringTemplateReverseMigrationInspection extends AbstractBase } if (string) stringSeen = true; } - String last = fragments.get(fragments.size() - 1).getValue(); + String last = fragments.getLast().getValue(); if (last == null) return; if (!last.isEmpty()) { concatenation.append("+\"").append(StringUtil.escapeStringCharacters(last)).append('"'); diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/optionalToIf/IntermediateOperation.java b/java/java-impl-inspections/src/com/intellij/codeInspection/optionalToIf/IntermediateOperation.java index 2e7f9513c56d..6f60afef5f87 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/optionalToIf/IntermediateOperation.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/optionalToIf/IntermediateOperation.java @@ -166,7 +166,7 @@ abstract class IntermediateOperation implements Operation { @NotNull ChainVariable outVar, @NotNull String code, @NotNull OptionalToIfContext context) { - String orResult = myRecords.get(myRecords.size() - 1).myOutVar.getName(); + String orResult = myRecords.getLast().myOutVar.getName(); String orCode = OptionalToIfInspection.wrapCode(context, myRecords, outVar.getName() + "=" + orResult + ";"); if (orCode == null) return null; return "if(" + outVar.getName() + "==null){\n" + @@ -196,7 +196,7 @@ abstract class IntermediateOperation implements Operation { @Override public @NotNull ChainVariable getOutVar(@NotNull ChainVariable inVar) { - ChainVariable outVar = myRecords.get(myRecords.size() - 1).myOutVar; + ChainVariable outVar = myRecords.getLast().myOutVar; return myVarName.equals(outVar.getName()) ? inVar : outVar; } diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/streamMigration/JoiningMigration.java b/java/java-impl-inspections/src/com/intellij/codeInspection/streamMigration/JoiningMigration.java index ed698fd45215..ba1460e9be8d 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/streamMigration/JoiningMigration.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/streamMigration/JoiningMigration.java @@ -202,7 +202,7 @@ final class JoiningMigration extends BaseStreamApiMigration { String generateIntermediate(CommentTracker ct) { if (TypeUtils.isJavaLangString(myLoopVariable.getType()) && myMainJoinParts.size() == 1 && - myMainJoinParts.get(0) instanceof PsiReferenceExpression) { + myMainJoinParts.getFirst() instanceof PsiReferenceExpression) { return ""; } PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(myLoopVariable.getProject()); @@ -540,7 +540,7 @@ final class JoiningMigration extends BaseStreamApiMigration { private static @Nullable PsiMethodCallExpression tryExtractCombinedToString(PsiMethodCallExpression afterLoopAppend, List refs) { if (refs.size() == 1 && afterLoopAppend == null) { // case like return sb.append(postfix).toString(); - PsiMethodCallExpression usage = ExpressionUtils.getCallForQualifier((PsiExpression)refs.get(0)); + PsiMethodCallExpression usage = ExpressionUtils.getCallForQualifier((PsiExpression)refs.getFirst()); if (APPEND.test(usage)) { PsiMethodCallExpression nextCall = ExpressionUtils.getCallForQualifier(usage); if (nextCall != null && "toString".equals(nextCall.getMethodExpression().getReferenceName())) { @@ -750,7 +750,7 @@ final class JoiningMigration extends BaseStreamApiMigration { List mainJoinParts = extractJoinParts(statements); if (mainJoinParts == null || mainJoinParts.isEmpty()) return null; if (statements.isEmpty()) return null; - PsiVariable targetBuilder = extractStringBuilder(statements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(statements.getFirst()); if (targetBuilder == null) return null; PsiStatement loop = terminalBlock.getStreamSourceStatement(); PrefixSuffixContext context = @@ -781,14 +781,14 @@ final class JoiningMigration extends BaseStreamApiMigration { if (nonFinalVariables != null && !nonFinalVariables.isEmpty()) return null; List statements = List.of(terminalBlock.getStatements()); if (statements.size() < 2) return null; - PsiIfStatement ifStatement = tryCast(statements.get(0), PsiIfStatement.class); + PsiIfStatement ifStatement = tryCast(statements.getFirst(), PsiIfStatement.class); if (ifStatement == null) return null; PsiExpression condition = ifStatement.getCondition(); if (condition == null || ifStatement.getElseBranch() != null) return null; List delimiter = extractDelimiter(ifStatement); if (delimiter == null) return null; List withoutCondition = statements.subList(1, statements.size()); - PsiVariable targetBuilder = extractStringBuilder(withoutCondition.get(0)); + PsiVariable targetBuilder = extractStringBuilder(withoutCondition.getFirst()); if(!(targetBuilder instanceof PsiLocalVariable)) return null; Integer conditionPrefixLength = extractConditionPrefixLength(condition, targetBuilder); if (conditionPrefixLength == null) return null; @@ -848,7 +848,7 @@ final class JoiningMigration extends BaseStreamApiMigration { if (specialFirstIterationLoop == null) return null; PsiLocalVariable boolVar = specialFirstIterationLoop.getVariable(); if (boolVar == null) return null; - if (nonFinalVariables != null && !nonFinalVariables.get(0).equals(boolVar)) return null; + if (nonFinalVariables != null && !nonFinalVariables.getFirst().equals(boolVar)) return null; List firstIterationStatements = specialFirstIterationLoop.getFirstIterationStatements(); List otherIterationStatements = specialFirstIterationLoop.getOtherIterationStatements(); if (firstIterationStatements.isEmpty() || otherIterationStatements.isEmpty()) return null; @@ -861,7 +861,7 @@ final class JoiningMigration extends BaseStreamApiMigration { if (!joinPartsAreEquivalent(joinData.getMainJoinParts(), firstIterationJoinParts)) return null; - PsiVariable targetBuilder = extractStringBuilder(firstIterationStatements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(firstIterationStatements.getFirst()); if (targetBuilder == null) return null; PsiStatement loop = terminalBlock.getStreamSourceStatement(); PrefixSuffixContext context = @@ -905,7 +905,7 @@ final class JoiningMigration extends BaseStreamApiMigration { if (nonFinalVariables != null && !nonFinalVariables.isEmpty()) return null; List statements = Arrays.asList(terminalBlock.getStatements()); if (statements.isEmpty()) return null; - PsiVariable targetBuilder = extractStringBuilder(statements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(statements.getFirst()); if(!(targetBuilder instanceof PsiLocalVariable)) return null; List joinParts = extractJoinParts(statements); if (joinParts == null) return null; @@ -1017,7 +1017,7 @@ final class JoiningMigration extends BaseStreamApiMigration { List statements = List.of(terminalBlock.getStatements()); if (statements.size() < 2) return null; // TODO maybe not just last, but check if delimiter not used after assignment? - PsiAssignmentExpression assignment = extractAssignment(statements.get(statements.size() - 1)); + PsiAssignmentExpression assignment = extractAssignment(statements.getLast()); if (assignment == null) return null; PsiLocalVariable delimiterVar = extractDelimiterVar(assignment); if (delimiterVar == null) return null; @@ -1027,11 +1027,11 @@ final class JoiningMigration extends BaseStreamApiMigration { List joinParts = extractJoinParts(mainStatements); if (joinParts == null || joinParts.isEmpty()) return null; - if (isSeparator(delimiterVar, joinParts.get(0))) return null; - joinParts.remove(0); + if (isSeparator(delimiterVar, joinParts.getFirst())) return null; + joinParts.removeFirst(); if (ReferencesSearch.search(delimiterVar, new LocalSearchScope(terminalBlock.getStatements())).findAll().size() != 2) return null; - PsiVariable targetBuilder = extractStringBuilder(mainStatements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(mainStatements.getFirst()); if (targetBuilder == null) return null; PsiStatement loop = terminalBlock.getStreamSourceStatement(); @@ -1115,7 +1115,7 @@ final class JoiningMigration extends BaseStreamApiMigration { break; } if (statement instanceof PsiExpressionStatement && - JoiningTerminal.tryExtractJoinPart(((PsiExpressionStatement)statement).getExpression(), new ArrayList<>())) { + tryExtractJoinPart(((PsiExpressionStatement)statement).getExpression(), new ArrayList<>())) { break; } additionalPrefix++; @@ -1142,7 +1142,7 @@ final class JoiningMigration extends BaseStreamApiMigration { if (!joinPartsAreEquivalent(joinData.getMainJoinParts(), firstIterationJoinParts)) return null; if (firstIterationStatements.isEmpty()) return null; - PsiVariable targetBuilder = extractStringBuilder(firstIterationStatements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(firstIterationStatements.getFirst()); if (targetBuilder == null) return null; PsiStatement loop = terminalBlock.getStreamSourceStatement(); PrefixSuffixContext context = @@ -1223,9 +1223,9 @@ final class JoiningMigration extends BaseStreamApiMigration { PsiStatement loop = terminalBlock.getStreamSourceStatement(); PsiLocalVariable variable = tryCast(terminalBlock.getVariable(), PsiLocalVariable.class); if (variable == null) return null; - PsiVariable targetBuilder = extractStringBuilder(statements.get(0)); + PsiVariable targetBuilder = extractStringBuilder(statements.getFirst()); if (targetBuilder == null) return null; - AppendChain beforeLoopAppend = JoiningTerminal.getCallBeforeStatement(loop, targetBuilder, emptyList()); + AppendChain beforeLoopAppend = getCallBeforeStatement(loop, targetBuilder, emptyList()); if (beforeLoopAppend == null) return null; PsiStatement beforeLoopAppendStatement = PsiTreeUtil.getParentOfType(beforeLoopAppend.outermost, PsiStatement.class); if (beforeLoopAppendStatement == null) return null; diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/streamToLoop/StreamToLoopInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/streamToLoop/StreamToLoopInspection.java index f262452eb7fe..d2abbb069a17 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/streamToLoop/StreamToLoopInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/streamToLoop/StreamToLoopInspection.java @@ -211,7 +211,7 @@ public final class StreamToLoopInspection extends AbstractBaseJavaLocalInspectio Operation combined = op.combineWithNext(next); if (combined != null) { op = combined; - operations.remove(operations.size() - 1); + operations.removeLast(); } } OperationRecord or = new OperationRecord(); @@ -238,7 +238,7 @@ public final class StreamToLoopInspection extends AbstractBaseJavaLocalInspectio @Contract("null -> null") static @Nullable TerminalOperation getTerminal(List operations) { if (operations == null || operations.isEmpty()) return null; - OperationRecord record = operations.get(operations.size()-1); + OperationRecord record = operations.getLast(); if(record.myOperation instanceof TerminalOperation) { return (TerminalOperation)record.myOperation; } diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java index c621f79fb2ac..3720b976d2a1 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java @@ -384,7 +384,7 @@ public final class FieldCanBeLocalInspection extends AbstractBaseJavaLocalInspec if (declaration != null) newDeclarations.add(declaration); } if (!newDeclarations.isEmpty()) { - final PsiElement lastDeclaration = newDeclarations.get(newDeclarations.size() - 1); + final PsiElement lastDeclaration = newDeclarations.getLast(); deleteField(variable, lastDeclaration); } return newDeclarations; @@ -401,7 +401,7 @@ public final class FieldCanBeLocalInspection extends AbstractBaseJavaLocalInspec if (variable == null) return; final List newDeclarations = moveDeclaration(variable); if (newDeclarations.isEmpty()) return; - updater.moveCaretTo(newDeclarations.get(newDeclarations.size() - 1)); + updater.moveCaretTo(newDeclarations.getLast()); newDeclarations.forEach(declaration -> ConvertToLocalUtils.inlineRedundant(declaration)); } diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java b/java/java-impl-refactorings/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java index 3f2002b0f3fc..45439cd95fcf 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java @@ -287,7 +287,7 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor { } LOG.assertTrue(!returnStatements.isEmpty()); - final PsiReturnStatement returnStatement = returnStatements.get(returnStatements.size() - 1); + final PsiReturnStatement returnStatement = returnStatements.getLast(); final PsiElement container = returnStatement.getParent(); LOG.assertTrue(myResultFieldName != null); final PsiStatement resultStmt = myElementFactory.createStatementFromText(myResultFieldName + " = false;", container); diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index 521b2b33dbf6..3911f865d0aa 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -502,7 +502,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { LOG.assertTrue(containingMethodCopy != null); final List enclosingMethodsInCopy = CommonJavaRefactoringUtil.getEnclosingMethods(containingMethodCopy); final MyExtractMethodProcessor processor = new MyExtractMethodProcessor(project, editor, elementsCopy, - enclosingMethodsInCopy.get(enclosingMethodsInCopy.size() - 1)); + enclosingMethodsInCopy.getLast()); try { if (!processor.prepare()) return false; processor.showDialog(); diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/PushDownConflicts.java b/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/PushDownConflicts.java index 85c02386c065..9d83e8ddcb9e 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/PushDownConflicts.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/memberPushDown/PushDownConflicts.java @@ -110,7 +110,7 @@ public class PushDownConflicts { if (unrelatedDefaults.size() > 1) { List supers = new ArrayList<>(unrelatedDefaults); supers.sort(Comparator.comparing(PsiClass::getName)); - PsiClass lastClass = supers.remove(supers.size() - 1); + PsiClass lastClass = supers.removeLast(); myConflicts.putValue(member, StringUtil .capitalize(JavaRefactoringBundle .message("push.down.unrelated.defaults.conflict", RefactoringUIUtil.getDescription(myClass, false), diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/typeMigration/Util.java b/java/java-impl-refactorings/src/com/intellij/refactoring/typeMigration/Util.java index e3c6d962a1ce..7a118530bc8b 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/typeMigration/Util.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/typeMigration/Util.java @@ -44,7 +44,7 @@ public final class Util { } } //TODO Dmitry Batkovich multiple result is possible - return normalized.isEmpty() ? element : normalized.get(normalized.size() - 1); + return normalized.isEmpty() ? element : normalized.getLast(); } else if (element instanceof PsiParameter && element.getParent() instanceof PsiParameterList) { final PsiElement declarationScope = ((PsiParameter)element).getDeclarationScope(); diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java index e390179d86f7..da9b45232162 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -343,7 +343,7 @@ public class JavaKeywordCompletion { if (switchBlock == null) return; List allBranches = PsiTreeUtil.getChildrenOfTypeAsList(switchBlock.getBody(), PsiSwitchLabelStatementBase.class); - if (allBranches.isEmpty() || allBranches.get(allBranches.size() - 1).getCaseLabelElementList() != labels) { + if (allBranches.isEmpty() || allBranches.getLast().getCaseLabelElementList() != labels) { return; } if (JavaPsiSwitchUtil.findDefaultElement(switchBlock) != null) { diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/MethodTags.java b/java/java-impl/src/com/intellij/codeInsight/completion/MethodTags.java index 2bd54976258f..d6a6a0481584 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/MethodTags.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/MethodTags.java @@ -139,7 +139,7 @@ public final class MethodTags { private void highlightLast(@NotNull LookupElementPresentation presentation, int start) { List fragments = presentation.getTailFragments(); - LookupElementPresentation.TextFragment lastFragment = fragments.get(fragments.size() - 1); + LookupElementPresentation.TextFragment lastFragment = fragments.getLast(); Iterable ranges = LookupCellRenderer.getMatchingFragments(myPrefix, lastFragment.text); if (ranges != null) { for (TextRange nextHighlightedRange : ranges) { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticMembersProcessor.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticMembersProcessor.java index bab4c6157c4f..46b2e1020c28 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticMembersProcessor.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/StaticMembersProcessor.java @@ -163,10 +163,10 @@ abstract class StaticMembersProcessor ApplicableType type = isApplicable(member, myPlace); if (!list.isEmpty()) { - Pair previousPair = list.get(list.size() - 1); + Pair previousPair = list.getLast(); if (previousPair.getFirst().getContainingClass() == containingClass && previousPair.getSecond().ordinal() < type.ordinal()) { - list.remove(list.size() - 1); + list.removeLast(); list.add(new Pair<>(member, type)); } } diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java index b2b3250710b2..2a9ca5c11f8a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java @@ -872,7 +872,7 @@ public final class GenerateMembersUtil { stack.add(typeElement); StringBuilder builder = new StringBuilder(); while (!stack.isEmpty()) { - PsiElement current = stack.remove(stack.size() - 1); + PsiElement current = stack.removeLast(); if (current instanceof PsiAnnotation annotation) { if (!NullableNotNullManager.isNullabilityAnnotation(annotation)) { continue; diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ExtractSetFromComparisonChainAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ExtractSetFromComparisonChainAction.java index cca64a0a0ed2..2703a0ee6468 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ExtractSetFromComparisonChainAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ExtractSetFromComparisonChainAction.java @@ -82,7 +82,7 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi PsiElementFactory factory = JavaPsiFacade.getElementFactory(project); JavaCodeStyleManager manager = JavaCodeStyleManager.getInstance(project); - String name = manager.suggestUniqueVariableName(suggestions.iterator().next(), cls, false); + String name = manager.suggestUniqueVariableName(suggestions.getFirst(), cls, false); String fieldInitializer = context.myInitializer; PsiType elementType = context.myType; if (elementType == null) return; @@ -119,8 +119,8 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi List otherComparisons = comparisons(operand).toList(); otherComparisons.stream().map(c -> c.myComparison).forEach(processedOperands::add); if (otherComparisons.size() == comparisons.size() && - otherComparisons.get(0).myExpression != comparisons.get(0).myExpression && - otherComparisons.get(0).myType.equals(comparisons.get(0).myType) + otherComparisons.getFirst().myExpression != comparisons.getFirst().myExpression && + otherComparisons.getFirst().myType.equals(comparisons.getFirst().myType) && StreamEx.of(otherComparisons).map(c -> c.myConstantRepresentation).toSet().equals(orig)) { copies.add(new ExpressionToConstantReplacementContext(otherComparisons)); } @@ -178,11 +178,11 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi } private static @NotNull LinkedHashSet getSuggestions(List comparisons) { - PsiExpression stringExpression = comparisons.get(0).myExpression; + PsiExpression stringExpression = comparisons.getFirst().myExpression; Project project = stringExpression.getProject(); JavaCodeStyleManager manager = JavaCodeStyleManager.getInstance(project); SuggestedNameInfo info = manager.suggestVariableName(VariableKind.STATIC_FINAL_FIELD, null, stringExpression, - comparisons.get(0).myType, false); + comparisons.getFirst().myType, false); // Suggestions like OBJECT and AN_OBJECT appear because Object.equals argument type is an Object, // such names are rarely appropriate LinkedHashSet suggestions = @@ -196,7 +196,7 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi .limit(5) .map(StringUtil::pluralize) .forEach(suggestions::add); - if(comparisons.get(0).myType.equalsToText(CommonClassNames.JAVA_LANG_STRING)) { + if(comparisons.getFirst().myType.equalsToText(CommonClassNames.JAVA_LANG_STRING)) { suggestions.add("STRINGS"); } return suggestions; @@ -235,10 +235,10 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi ExpressionToConstantReplacementContext(List comparisons) { assert !comparisons.isEmpty(); - myExpression = comparisons.get(0).myExpression; - myFirstComparison = comparisons.get(0).myComparison; - myLastComparison = comparisons.get(comparisons.size() - 1).myComparison; - myType = comparisons.get(0).myType; + myExpression = comparisons.getFirst().myExpression; + myFirstComparison = comparisons.getFirst().myComparison; + myLastComparison = comparisons.getLast().myComparison; + myType = comparisons.getFirst().myType; myInitializer = StreamEx.of(comparisons).map(cmp -> cmp.myConstant.getText()).joining(","); } diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveIntoIfBranchesAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveIntoIfBranchesAction.java index 846788562f6c..da9f2638fb19 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveIntoIfBranchesAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/MoveIntoIfBranchesAction.java @@ -52,7 +52,7 @@ public final class MoveIntoIfBranchesAction implements ModCommandAction { } private static boolean hasConflictingDeclarations(@NotNull PsiIfStatement ifStatement, @NotNull List statements) { - PsiStatement lastStatement = statements.get(statements.size() - 1); + PsiStatement lastStatement = statements.getLast(); List afterLast = new ArrayList<>(); for (PsiElement e = lastStatement.getNextSibling(); e != null; e = e.getNextSibling()) { if (!(e instanceof PsiComment) && !(e instanceof PsiWhiteSpace)) { @@ -83,7 +83,7 @@ public final class MoveIntoIfBranchesAction implements ModCommandAction { if (!BaseIntentionAction.canModify(context.file())) return null; List statements = extractStatements(context); if (statements.isEmpty()) return null; - PsiElement prev = PsiTreeUtil.skipWhitespacesAndCommentsBackward(statements.get(0)); + PsiElement prev = PsiTreeUtil.skipWhitespacesAndCommentsBackward(statements.getFirst()); if (!(prev instanceof PsiIfStatement ifStatement) || hasConflictingDeclarations(ifStatement, statements)) return null; return Presentation.of(getFamilyName()); } @@ -96,7 +96,7 @@ public final class MoveIntoIfBranchesAction implements ModCommandAction { private static void invoke(@NotNull ActionContext context) { List statements = extractStatements(context); if (statements.isEmpty()) return; - PsiIfStatement ifStatement = tryCast(PsiTreeUtil.skipWhitespacesAndCommentsBackward(statements.get(0)), PsiIfStatement.class); + PsiIfStatement ifStatement = tryCast(PsiTreeUtil.skipWhitespacesAndCommentsBackward(statements.getFirst()), PsiIfStatement.class); if (ifStatement == null || hasConflictingDeclarations(ifStatement, statements)) return; PsiElementFactory factory = JavaPsiFacade.getElementFactory(context.project()); PsiStatement thenBranch = ifStatement.getThenBranch(); @@ -120,8 +120,8 @@ public final class MoveIntoIfBranchesAction implements ModCommandAction { PsiJavaToken thenBrace = thenBlock.getRBrace(); PsiJavaToken elseBrace = elseBlock.getRBrace(); if (thenBrace == null || elseBrace == null) return; - thenBlock.addRangeBefore(statements.get(0), statements.get(statements.size() - 1), thenBrace); - elseBlock.addRangeBefore(statements.get(0), statements.get(statements.size() - 1), elseBrace); - ifStatement.getParent().deleteChildRange(statements.get(0), statements.get(statements.size() - 1)); + thenBlock.addRangeBefore(statements.getFirst(), statements.getLast(), thenBrace); + elseBlock.addRangeBefore(statements.getFirst(), statements.getLast(), elseBrace); + ifStatement.getParent().deleteChildRange(statements.getFirst(), statements.getLast()); } } diff --git a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java index 0f2932a9fd24..e9b8262fb486 100644 --- a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java @@ -1223,7 +1223,7 @@ public final class EnhancedSwitchMigrationInspection extends AbstractBaseJavaLoc while (current != null) { if ((current instanceof PsiComment || current instanceof PsiWhiteSpace)) { if (branch.myUsedElements.isEmpty() || - !PsiTreeUtil.isAncestor(branch.myUsedElements.get(branch.myUsedElements.size() - 1), current, false)) { + !PsiTreeUtil.isAncestor(branch.myUsedElements.getLast(), current, false)) { comments.add(ct.text(current)); } } @@ -1300,7 +1300,7 @@ public final class EnhancedSwitchMigrationInspection extends AbstractBaseJavaLoc sb.append("->"); sb.append(myRuleResult.generate(ct, this)); if (!myUsedElements.isEmpty()) { - PsiElement element = PsiTreeUtil.nextCodeLeaf(myUsedElements.get(myUsedElements.size() - 1)); + PsiElement element = PsiTreeUtil.nextCodeLeaf(myUsedElements.getLast()); if (element instanceof PsiJavaToken javaToken && javaToken.textMatches("}") && element.getParent() instanceof PsiCodeBlock codeBlock && codeBlock.getParent() instanceof PsiSwitchBlock) { diff --git a/java/java-impl/src/com/siyeh/ig/controlflow/ExcessiveRangeCheckInspection.java b/java/java-impl/src/com/siyeh/ig/controlflow/ExcessiveRangeCheckInspection.java index cf8fff4ffe0b..d92ef8c5f7c5 100644 --- a/java/java-impl/src/com/siyeh/ig/controlflow/ExcessiveRangeCheckInspection.java +++ b/java/java-impl/src/com/siyeh/ig/controlflow/ExcessiveRangeCheckInspection.java @@ -57,7 +57,7 @@ public final class ExcessiveRangeCheckInspection extends AbstractBaseJavaLocalIn BinaryOperator reductionOp = andChain ? LongRangeSet::meet : LongRangeSet::join; LongRangeSet set = run.stream().map(c -> c.myConstraint).reduce(reductionOp).orElse(LongRangeSet.empty()); if (set.isEmpty()) continue; - RangeConstraint constraint = run.get(0); + RangeConstraint constraint = run.getFirst(); if (!andChain) { set = constraint.getFullRange().subtract(set); } @@ -73,7 +73,7 @@ public final class ExcessiveRangeCheckInspection extends AbstractBaseJavaLocalIn String replacement = text + ' ' + (andChain ? "==" : "!=") + ' ' + valueRepresentation; String message = InspectionGadgetsBundle.message("inspection.excessive.range.check.message", replacement); holder.registerProblem(expression, - new TextRange(constraint.myRange.getStartOffset(), run.get(run.size() - 1).myRange.getEndOffset()), + new TextRange(constraint.myRange.getStartOffset(), run.getLast().myRange.getEndOffset()), message, new ExcessiveRangeCheckFix(replacement)); } } @@ -225,8 +225,8 @@ public final class ExcessiveRangeCheckInspection extends AbstractBaseJavaLocalIn PsiExpression[] allOperands = expression.getOperands(); List operands = ContainerUtil.filter(allOperands, op -> range.contains(op.getTextRangeInParent())); if (operands.size() < 2) return; - PsiExpression firstOperand = operands.get(0); - PsiExpression lastOperand = operands.get(operands.size() - 1); + PsiExpression firstOperand = operands.getFirst(); + PsiExpression lastOperand = operands.getLast(); RangeConstraint constraint = extractConstraint(firstOperand); if (constraint == null) return; CommentTracker ct = new CommentTracker(); diff --git a/java/java-impl/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java b/java/java-impl/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java index 9f5fff670559..4003b92af52a 100644 --- a/java/java-impl/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java +++ b/java/java-impl/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java @@ -242,10 +242,10 @@ public final class StringBufferReplaceableByStringInspection extends BaseInspect toDelete.add(expressions.get(i).getParent()); } - final PsiExpression lastExpression = expressions.get(expressions.size() - 1); + final PsiExpression lastExpression = expressions.getLast(); final boolean useVariable = myPossibleSideEffect || expressionText.contains("\n") && !isVariableInitializer(lastExpression); if (useVariable) { - final PsiElement last = toDelete.remove(toDelete.size() - 1); + final PsiElement last = toDelete.removeLast(); final PsiStatement statement = PsiTreeUtil.getNonStrictParentOfType(last, PsiStatement.class); if (statement == null) { return; diff --git a/java/java-impl/src/com/siyeh/ig/whileloop/WhileCanBeDoWhileInspection.java b/java/java-impl/src/com/siyeh/ig/whileloop/WhileCanBeDoWhileInspection.java index ce4438789735..708d2f261649 100644 --- a/java/java-impl/src/com/siyeh/ig/whileloop/WhileCanBeDoWhileInspection.java +++ b/java/java-impl/src/com/siyeh/ig/whileloop/WhileCanBeDoWhileInspection.java @@ -198,7 +198,7 @@ public final class WhileCanBeDoWhileInspection extends AbstractBaseJavaLocalInsp return null; } } - return new DiffRange(block.statements.get(0), block.statements.get(block.statements.size() - 1), + return new DiffRange(block.statements.getFirst(), block.statements.getLast(), equalsComments(comments, block.comments) ? ProblemHighlightType.WEAK_WARNING : ProblemHighlightType.INFORMATION); diff --git a/java/manifest/src/org/jetbrains/lang/manifest/highlighting/MissingFinalNewlineInspection.java b/java/manifest/src/org/jetbrains/lang/manifest/highlighting/MissingFinalNewlineInspection.java index 8170ec3bac96..1ce94d700e15 100644 --- a/java/manifest/src/org/jetbrains/lang/manifest/highlighting/MissingFinalNewlineInspection.java +++ b/java/manifest/src/org/jetbrains/lang/manifest/highlighting/MissingFinalNewlineInspection.java @@ -52,7 +52,7 @@ public final class MissingFinalNewlineInspection extends LocalInspectionTool { if (text != null && !text.isEmpty() && !StringUtil.endsWith(text, "\n")) { List
sections = ((ManifestFile)file).getSections(); assert !sections.isEmpty() : text; - Section section = sections.get(sections.size() - 1); + Section section = sections.getLast(); ModCommandAction action = new AddNewlineQuickFix(section); ProblemDescriptor descriptor = manager.createProblemDescriptor( section.getLastChild(), ManifestBundle.message("inspection.newline.message"), diff --git a/java/openapi/src/com/intellij/java/library/JavaLibraryUtil.java b/java/openapi/src/com/intellij/java/library/JavaLibraryUtil.java index 69ad15910641..30bc8c29728c 100644 --- a/java/openapi/src/com/intellij/java/library/JavaLibraryUtil.java +++ b/java/openapi/src/com/intellij/java/library/JavaLibraryUtil.java @@ -91,7 +91,7 @@ public final class JavaLibraryUtil { return new MavenCoordinates(intern(parts.get(0)), intern(parts.get(1)), - intern(parts.get(parts.size() - 1))); + intern(parts.getLast())); } /** diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaReplaceHandler.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaReplaceHandler.java index db02ba4fcd04..9b19b39fce44 100644 --- a/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaReplaceHandler.java +++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaReplaceHandler.java @@ -534,7 +534,7 @@ public class JavaReplaceHandler extends StructuralReplaceHandler { if (replacement instanceof PsiTryStatement tryStatement) { final List unmatchedElements = elementToReplace.getUserData(GlobalMatchingVisitor.UNMATCHED_ELEMENTS_KEY); if (unmatchedElements != null && !unmatchedElements.isEmpty()) { - final PsiElement firstElement = unmatchedElements.get(0); + final PsiElement firstElement = unmatchedElements.getFirst(); if (firstElement instanceof PsiResourceList) addElementAfterAnchor(tryStatement, firstElement, tryStatement.getFirstChild()); outer: for (final PsiElement element : unmatchedElements) { @@ -558,7 +558,7 @@ public class JavaReplaceHandler extends StructuralReplaceHandler { } } } - final PsiElement lastElement = unmatchedElements.get(unmatchedElements.size() - 1); + final PsiElement lastElement = unmatchedElements.getLast(); if (lastElement instanceof PsiCodeBlock) { final PsiElement finallyKeyword = PsiTreeUtil.skipWhitespacesBackward(lastElement); assert finallyKeyword != null; diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaStructuralSearchProfile.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaStructuralSearchProfile.java index 3dc95a6bf69e..4755e714d86c 100644 --- a/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaStructuralSearchProfile.java +++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/JavaStructuralSearchProfile.java @@ -371,7 +371,7 @@ public final class JavaStructuralSearchProfile extends StructuralSearchProfile { if (elements.isEmpty()) { return false; } - final PsiElement firstElement = elements.get(0); + final PsiElement firstElement = elements.getFirst(); if (firstElement instanceof PsiDeclarationStatement && firstElement.getFirstChild() instanceof PsiClass) { return true; } @@ -379,7 +379,7 @@ public final class JavaStructuralSearchProfile extends StructuralSearchProfile { return false; } final PsiElement secondElement = elements.get(1); - final PsiElement lastElement = elements.get(elements.size() - 1); + final PsiElement lastElement = elements.getLast(); if (firstElement instanceof PsiDocComment) { // might be method with javadoc diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/predicates/ExprTypePredicate.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/predicates/ExprTypePredicate.java index 3e78d8ca8462..0bab9aa2e698 100644 --- a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/predicates/ExprTypePredicate.java +++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/predicates/ExprTypePredicate.java @@ -182,7 +182,7 @@ public class ExprTypePredicate extends MatchPredicate { if (lt >= 0) { result.add(typeText.substring(0, lt) + suffix); } - else if (result.isEmpty() || !result.get(result.size() - 1).equals(typeText)) { + else if (result.isEmpty() || !result.getLast().equals(typeText)) { result.add(typeText); } } diff --git a/java/testFramework/src/com/intellij/JavaTestUtil.java b/java/testFramework/src/com/intellij/JavaTestUtil.java index 8724a882756e..4ad7192a1234 100644 --- a/java/testFramework/src/com/intellij/JavaTestUtil.java +++ b/java/testFramework/src/com/intellij/JavaTestUtil.java @@ -15,8 +15,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; -import java.util.List; - public final class JavaTestUtil { public static String getJavaTestDataPath() { @@ -62,7 +60,6 @@ public final class JavaTestUtil { } public static LanguageLevel getMaxRegisteredLanguageLevel() { - List values = LanguageLevel.getEntries(); - return values.get(values.size() - 1); + return LanguageLevel.getEntries().getLast(); } } \ No newline at end of file diff --git a/java/unscramble/src/com/intellij/unscramble/UnscrambleDialog.java b/java/unscramble/src/com/intellij/unscramble/UnscrambleDialog.java index 2496be512c63..606416d9abc9 100644 --- a/java/unscramble/src/com/intellij/unscramble/UnscrambleDialog.java +++ b/java/unscramble/src/com/intellij/unscramble/UnscrambleDialog.java @@ -210,7 +210,7 @@ public class UnscrambleDialog extends DialogWrapper { @Override public void actionPerformed(ActionEvent e) { FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor(); - FileChooser.chooseFiles(descriptor, myProject, null, files -> myLogFile.setText(FileUtil.toSystemDependentName(files.get(files.size() - 1).getPath()))); + FileChooser.chooseFiles(descriptor, myProject, null, files -> myLogFile.setText(FileUtil.toSystemDependentName(files.getLast().getPath()))); } }); myLogFileChooserPanel.setLayout(new BorderLayout());