From 1986c0f830796c22ee525b267c84f861ebb27d9d Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 17 Jul 2019 12:18:50 +0700 Subject: [PATCH] PsiElement traversal optimized GitOrigin-RevId: d8b8b9f554c016e9b29560a3174ae6584f4635ec --- .../daemon/impl/analysis/HighlightClassUtil.java | 2 +- .../daemon/impl/analysis/HighlightNamesUtil.java | 7 +++++-- .../daemon/impl/analysis/HighlightUtil.java | 4 ++-- .../codeInspection/dataFlow/ControlFlowAnalyzer.java | 4 ++-- .../codeInspection/dataFlow/value/DfaValueFactory.java | 2 +- .../daemon/impl/quickfix/DeclarationSearcher.java | 2 +- .../daemon/impl/quickfix/MakeClassInterfaceFix.java | 2 +- .../VariableAccessFromInnerClassJava10Fix.java | 4 ++-- .../codeInsight/editorActions/JavadocTypedHandler.java | 2 +- .../MissingArrayConstructorBracketFixer.java | 2 +- .../codeInsight/generation/GenerateMembersUtil.java | 2 +- .../hint/api/impls/MethodParameterInfoHandler.java | 2 +- .../intention/impl/lists/JavaListUtils.java | 2 +- .../javaDoc/JavaDocReferenceInspection.java | 2 +- .../psi/impl/source/codeStyle/ImportHelper.java | 5 +---- .../refactoring/memberPullUp/JavaPullUpHelper.java | 10 ++-------- .../refactoring/util/RefactoringConflictsUtil.java | 2 +- .../com/intellij/spellchecker/DocCommentTokenizer.java | 2 +- .../bitwise/PointlessBitwiseExpressionInspection.java | 2 +- .../siyeh/ig/javadoc/DanglingJavadocInspection.java | 2 +- .../ig/style/UnclearBinaryExpressionInspection.java | 4 ++-- .../TrivialFunctionalExpressionUsageInspection.java | 2 +- .../StringBufferReplaceableByStringInspection.java | 2 +- .../CopyConcatenatedStringToClipboardIntention.java | 2 +- .../siyeh/ipp/modifiers/ChangeModifierIntention.java | 2 +- .../i18n/folding/PropertyFoldingEditHandler.java | 2 +- 26 files changed, 35 insertions(+), 41 deletions(-) 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 ce84f98170bb..e0c3e4feba3d 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 @@ -385,7 +385,7 @@ public class HighlightClassUtil { PsiElement context = null; PsiModifierList modifierList = aClass.getModifierList(); if (modifierList != null) { - for (PsiElement element : modifierList.getChildren()) { + for (PsiElement element = modifierList.getFirstChild(); element != null; element = element.getNextSibling()) { if (Comparing.equal(element.getText(), PsiModifier.STATIC)) { context = element; break; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java index a3fa3ce6e366..f66def01d672 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightNamesUtil.java @@ -306,8 +306,11 @@ public class HighlightNamesUtil { TextRange textRange = element.getTextRange(); if (textRange == null) return 0; PsiAnnotation lastAnnotation = null; - for (PsiElement child : element.getChildren()) { - if (child instanceof PsiAnnotation) lastAnnotation = (PsiAnnotation)child; + for (PsiElement child = element.getLastChild(); child != null; child = child.getPrevSibling()) { + if (child instanceof PsiAnnotation) { + lastAnnotation = (PsiAnnotation)child; + break; + } } if (lastAnnotation == null) { return textRange.getStartOffset(); diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index c39dd4fbfd8d..5974f8c035dd 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -948,7 +948,7 @@ public class HighlightUtil extends HighlightUtilBase { * @return true if the supplied modifier list contains incompatible modifiers */ public static boolean isIllegalModifierCombination(@NotNull PsiModifierList modifierList) { - for (PsiElement child : modifierList.getChildren()) { + for (PsiElement child = modifierList.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiKeyword && getIncompatibleModifier(child.getText(), modifierList) != null) { return true; } @@ -1204,7 +1204,7 @@ public class HighlightUtil extends HighlightUtilBase { } else if (type == JavaTokenType.STRING_LITERAL) { if (value == null) { - for (PsiElement element : expression.getChildren()) { + for (PsiElement element = expression.getFirstChild(); element != null; element = element.getNextSibling()) { if (element instanceof OuterLanguageElement) { return null; } diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java index 7215ab8a211f..7aaecc0b85d0 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java @@ -71,7 +71,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { } private void buildClassInitializerFlow(PsiClass psiClass, boolean isStatic) { - for (PsiElement element : psiClass.getChildren()) { + for (PsiElement element = psiClass.getFirstChild(); element != null; element = element.getNextSibling()) { if (element instanceof PsiField && !((PsiField)element).hasInitializer() && ((PsiField)element).hasModifierProperty(PsiModifier.STATIC) == isStatic) { @@ -83,7 +83,7 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { addInstruction(new EscapeInstruction(Collections.singleton(getFactory().getVarFactory().createThisValue(psiClass)))); addInstruction(new FlushFieldsInstruction()); } - for (PsiElement element : psiClass.getChildren()) { + for (PsiElement element = psiClass.getFirstChild(); element != null; element = element.getNextSibling()) { if (((element instanceof PsiField && ((PsiField)element).hasInitializer()) || element instanceof PsiClassInitializer) && ((PsiMember)element).hasModifierProperty(PsiModifier.STATIC) == isStatic) { element.accept(this); diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaValueFactory.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaValueFactory.java index 098615d43ba3..8c5188290b18 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaValueFactory.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaValueFactory.java @@ -300,7 +300,7 @@ public class DfaValueFactory { ClassInitializationInfo(@NotNull PsiClass psiClass) { // Indirect instantiation via other class is still possible, but hopefully unlikely boolean canInstantiateItself = false; - for (PsiElement child : psiClass.getChildren()) { + for (PsiElement child = psiClass.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiMember && ((PsiMember)child).hasModifierProperty(PsiModifier.STATIC) && SyntaxTraverser.psiTraverser(child).filter(PsiNewExpression.class) .filterMap(PsiNewExpression::getClassReference) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeclarationSearcher.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeclarationSearcher.java index 8fcfc0a242c6..2cc11a612b2a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeclarationSearcher.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/DeclarationSearcher.java @@ -72,7 +72,7 @@ class DeclarationSearcher { } // look self - for (PsiElement element : parent.getChildren()) { + for (PsiElement element = parent.getFirstChild(); element != null; element = element.getNextSibling()) { if (element == endPositionElement) { break; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java index d3971252b485..95d40bdf00be 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MakeClassInterfaceFix.java @@ -93,7 +93,7 @@ public class MakeClassInterfaceFix extends LocalQuickFixAndIntentionActionOnPsiE private static void convertPsiClass(PsiClass aClass, final boolean makeInterface) throws IncorrectOperationException { final IElementType lookFor = makeInterface? JavaTokenType.CLASS_KEYWORD : JavaTokenType.INTERFACE_KEYWORD; final PsiKeyword replaceWith = JavaPsiFacade.getElementFactory(aClass.getProject()).createKeyword(makeInterface? PsiKeyword.INTERFACE : PsiKeyword.CLASS); - for (PsiElement psiElement : aClass.getChildren()) { + for (PsiElement psiElement = aClass.getFirstChild(); psiElement != null; psiElement = psiElement.getNextSibling()) { if (psiElement instanceof PsiKeyword) { final PsiKeyword psiKeyword = (PsiKeyword)psiElement; if (psiKeyword.getTokenType() == lookFor) { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassJava10Fix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassJava10Fix.java index 71dcbc2b9406..fed9fcc7eaae 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassJava10Fix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/VariableAccessFromInnerClassJava10Fix.java @@ -179,11 +179,11 @@ public class VariableAccessFromInnerClassJava10Fix extends BaseIntentionAction { PsiElement rBrace = anonymousClass.getRBrace(); if (lBrace == null || rBrace == null) return; StringBuilder expressionText = new StringBuilder(); - for (PsiElement child : newExpression.getChildren()) { + for (PsiElement child = newExpression.getFirstChild(); child != null; child = child.getNextSibling()) { if (child == anonymousClass) break; expressionText.append(child.getText()); } - for (PsiElement child : anonymousClass.getChildren()) { + for (PsiElement child = anonymousClass.getFirstChild(); child != null; child = child.getNextSibling()) { if (!myIsBefore && child == rBrace) expressionText.append(variableText); expressionText.append(child.getText()); if (myIsBefore && child == lBrace) expressionText.append(variableText); diff --git a/java/java-impl/src/com/intellij/codeInsight/editorActions/JavadocTypedHandler.java b/java/java-impl/src/com/intellij/codeInsight/editorActions/JavadocTypedHandler.java index 3deff7469cae..73f674468578 100644 --- a/java/java-impl/src/com/intellij/codeInsight/editorActions/JavadocTypedHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/editorActions/JavadocTypedHandler.java @@ -206,7 +206,7 @@ public class JavadocTypedHandler extends TypedHandlerDelegate { @Nullable private static PsiElement getDocumentingParameter(PsiDocTag tag) { - for (PsiElement element : tag.getChildren()) { + for(PsiElement element = tag.getFirstChild(); element != null; element = element.getNextSibling()) { if (element instanceof PsiDocParamRef) { return element; } diff --git a/java/java-impl/src/com/intellij/codeInsight/editorActions/smartEnter/MissingArrayConstructorBracketFixer.java b/java/java-impl/src/com/intellij/codeInsight/editorActions/smartEnter/MissingArrayConstructorBracketFixer.java index 51530625b39b..2e84f41cf2c6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/editorActions/smartEnter/MissingArrayConstructorBracketFixer.java +++ b/java/java-impl/src/com/intellij/codeInsight/editorActions/smartEnter/MissingArrayConstructorBracketFixer.java @@ -27,7 +27,7 @@ public class MissingArrayConstructorBracketFixer implements Fixer { if (!(psiElement instanceof PsiNewExpression)) return; PsiNewExpression expr = (PsiNewExpression)psiElement; int count = 0; - for (PsiElement element : expr.getChildren()) { + for (PsiElement element = expr.getFirstChild(); element != null; element = element.getNextSibling()) { if (element.getNode().getElementType() == JavaTokenType.LBRACKET) { count++; } else if (element.getNode().getElementType() == JavaTokenType.RBRACKET) { 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 5962135dadb7..928cb70e396c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersUtil.java @@ -233,7 +233,7 @@ public class GenerateMembersUtil { final PsiClass psiClass = (PsiClass)element; if (psiClass.isEnum()) { PsiElement lastChild = null; - for (PsiElement child : psiClass.getChildren()) { + for (PsiElement child = psiClass.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiJavaToken && ";".equals(child.getText())) { lastChild = child; break; diff --git a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java index 514d5c1db3b6..c563c1367cc6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/hint/api/impls/MethodParameterInfoHandler.java @@ -208,7 +208,7 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc return false; } else { - for (PsiElement element : owner.getChildren()) { + for (PsiElement element = owner.getFirstChild(); element != null; element = element.getNextSibling()) { if (element instanceof PsiErrorElement) return false; } PsiElement parent = owner.getParent(); diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/lists/JavaListUtils.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/lists/JavaListUtils.java index 2008c446a2e2..61e41ddcf753 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/lists/JavaListUtils.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/lists/JavaListUtils.java @@ -34,7 +34,7 @@ class JavaListUtils { static boolean containsEolComments(@NotNull List elements) { PsiElement parent = elements.get(0).getParent(); - for (PsiElement child : parent.getChildren()) { + for(PsiElement child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiComment && ((PsiComment)child).getTokenType() == JavaTokenType.END_OF_LINE_COMMENT) { return true; } diff --git a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java index a203d62f35f5..2f77f4c3065b 100644 --- a/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/javaDoc/JavaDocReferenceInspection.java @@ -259,7 +259,7 @@ public class JavaDocReferenceInspection extends LocalInspectionTool { @Override public void visitElement(PsiElement element) { - for (PsiElement child : element.getChildren()) { + for (PsiElement child = element.getFirstChild(); child != null; child = child.getNextSibling()) { child.accept(this); } } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java index 4573ac395ab0..067292a42d1d 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java @@ -905,10 +905,7 @@ public class ImportHelper{ while (!stack.isEmpty()) { final PsiElement child = stack.removeFirst(); if (child instanceof PsiImportList) { - for (PsiElement element : child.getChildren()) { - if (element == null) { - continue; - } + for(PsiElement element = child.getFirstChild(); element != null; element = element.getNextSibling()) { ASTNode node = element.getNode(); if (node == null) { continue; diff --git a/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHelper.java b/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHelper.java index 67f016724ee9..607cbba2706d 100644 --- a/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHelper.java +++ b/java/java-impl/src/com/intellij/refactoring/memberPullUp/JavaPullUpHelper.java @@ -556,13 +556,7 @@ public class JavaPullUpHelper implements PullUpHelper { } private static void collectPsiStatements(PsiElement root, Set collected) { - if (root instanceof PsiStatement){ - collected.add((PsiStatement)root); - } - - for (PsiElement element : root.getChildren()) { - collectPsiStatements(element, collected); - } + SyntaxTraverser.psiTraverser(root).filter(PsiStatement.class).addAllTo(collected); } private static class ParametersAndMovedFieldsUsedCollector extends JavaRecursiveElementWalkingVisitor { @@ -651,7 +645,7 @@ public class JavaPullUpHelper implements PullUpHelper { // find references for (PsiReference reference : ReferencesSearch.search(constructor, new LocalSearchScope(mySourceClass), false)) { final PsiElement element = reference.getElement(); - if (element != null && "super".equals(element.getText())) { + if ("super".equals(element.getText())) { PsiMethod parentMethod = PsiTreeUtil.getParentOfType(element, PsiMethod.class); if (parentMethod != null && parentMethod.isConstructor()) { referencingSubConstructors.add(parentMethod); diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java index cd03a1b13068..ca6b092dadaa 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java @@ -184,7 +184,7 @@ public class RefactoringConflictsUtil { } } - for (PsiElement child : scope.getChildren()) { + for (PsiElement child = scope.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiWhiteSpace || child instanceof PsiComment) continue; checkUsedElements(member, child, membersToMove, abstractMethods, targetClass, child instanceof PsiClass ? (PsiClass)child : accessClass, context, conflicts); } diff --git a/java/java-impl/src/com/intellij/spellchecker/DocCommentTokenizer.java b/java/java-impl/src/com/intellij/spellchecker/DocCommentTokenizer.java index d91a4ccda31d..67ace24f609d 100644 --- a/java/java-impl/src/com/intellij/spellchecker/DocCommentTokenizer.java +++ b/java/java-impl/src/com/intellij/spellchecker/DocCommentTokenizer.java @@ -38,7 +38,7 @@ public class DocCommentTokenizer extends Tokenizer { public void tokenize(@NotNull PsiDocComment comment, TokenConsumer consumer) { final CommentSplitter splitter = CommentSplitter.getInstance(); - for (PsiElement el : comment.getChildren()) { + for (PsiElement el = comment.getFirstChild(); el != null; el = el.getNextSibling()) { if (el instanceof PsiDocTag) { PsiDocTag tag = (PsiDocTag)el; if (!excludedTags.contains(tag.getName())) { diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java index 3f18663a7573..30a1d1866a53 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bitwise/PointlessBitwiseExpressionInspection.java @@ -176,7 +176,7 @@ public class PointlessBitwiseExpressionInspection extends BaseInspection { @NotNull @NonNls String replacement, CommentTracker ct) { final StringBuilder result = new StringBuilder(); boolean stop = false; - for (PsiElement child : expression.getChildren()) { + for (PsiElement child = expression.getFirstChild(); child != null; child = child.getNextSibling()) { if (child == fromTarget) { stop = true; result.append(replacement); diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/DanglingJavadocInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/DanglingJavadocInspection.java index d187722bfdc4..0bbabe40fb37 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/DanglingJavadocInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/DanglingJavadocInspection.java @@ -75,7 +75,7 @@ public class DanglingJavadocInspection extends BaseInspection { final PsiElement element = descriptor.getPsiElement(); final PsiElement docComment = element.getParent(); final StringBuilder newCommentText = new StringBuilder(); - for (PsiElement child : docComment.getChildren()) { + for (PsiElement child = docComment.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiDocToken) { final PsiDocToken docToken = (PsiDocToken)child; final IElementType tokenType = docToken.getTokenType(); diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnclearBinaryExpressionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnclearBinaryExpressionInspection.java index f33e5bab58f9..6782ae2e6be5 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnclearBinaryExpressionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnclearBinaryExpressionInspection.java @@ -179,7 +179,7 @@ public class UnclearBinaryExpressionInspection extends BaseInspection { appendText(polyadicExpression, parentheses, out); } else if (expression instanceof PsiParenthesizedExpression) { - for (PsiElement child : expression.getChildren()) { + for (PsiElement child = expression.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiExpression) { final PsiExpression unwrappedExpression = (PsiExpression)child; createReplacementText(unwrappedExpression, out); @@ -235,7 +235,7 @@ public class UnclearBinaryExpressionInspection extends BaseInspection { if (parentheses) { out.append('('); } - for (PsiElement child : expression.getChildren()) { + for (PsiElement child = expression.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiExpression) { createReplacementText((PsiExpression)child, out); } diff --git a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java index b7a312866be8..2c78cd6b86bc 100644 --- a/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java +++ b/plugins/InspectionGadgets/src/com/intellij/codeInspection/TrivialFunctionalExpressionUsageInspection.java @@ -230,7 +230,7 @@ public class TrivialFunctionalExpressionUsageInspection extends AbstractBaseJava gParent.addBefore(JavaPsiFacade.getElementFactory(element.getProject()).createStatementFromText(ct.text(body), anchor), anchor); } else { - for (PsiElement child : body.getChildren()) { + for (PsiElement child = body.getFirstChild(); child != null; child = child.getNextSibling()) { if (child != statement && !(child instanceof PsiJavaToken)) { gParent.addBefore(ct.markUnchanged(child), anchor); } diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java index 68628574ce93..4c011679e217 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/StringBufferReplaceableByStringInspection.java @@ -340,7 +340,7 @@ public class StringBufferReplaceableByStringInspection extends BaseInspection { } return result; } - for (PsiElement child : element.getChildren()) { + for (PsiElement child = element.getFirstChild(); child != null; child = child.getNextSibling()) { if (child instanceof PsiExpressionList) { continue; } diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/CopyConcatenatedStringToClipboardIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/CopyConcatenatedStringToClipboardIntention.java index ccc733c4c68a..f82d7837946f 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/CopyConcatenatedStringToClipboardIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/concatenation/CopyConcatenatedStringToClipboardIntention.java @@ -60,7 +60,7 @@ public class CopyConcatenatedStringToClipboardIntention extends Intention { public static String buildConcatenationText(PsiPolyadicExpression polyadicExpression) { StringBuilder out = new StringBuilder(); - for (PsiElement element : polyadicExpression.getChildren()) { + for(PsiElement element = polyadicExpression.getFirstChild(); element != null; element = element.getNextSibling()) { if (element instanceof PsiExpression) { final PsiExpression expression = (PsiExpression)element; final Object value = ExpressionUtils.computeConstantExpression(expression); diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ChangeModifierIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ChangeModifierIntention.java index 4b5c2d978b8f..8e7335ae3f31 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ChangeModifierIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ChangeModifierIntention.java @@ -346,7 +346,7 @@ public class ChangeModifierIntention extends BaseElementAtCaretIntentionAction { @Nullable private static PsiKeyword getAnchorKeyword(PsiModifierList modifierList) { - for (PsiElement child : modifierList.getChildren()) { + for (PsiElement child = modifierList.getFirstChild(); child != null; child = child.getNextSibling()) { if (ALL_MODIFIERS.contains(AccessModifier.fromKeyword(ObjectUtils.tryCast(child, PsiKeyword.class)))) { return (PsiKeyword)child; } diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/folding/PropertyFoldingEditHandler.java b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/folding/PropertyFoldingEditHandler.java index 988b9b256f59..606f7d026311 100644 --- a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/folding/PropertyFoldingEditHandler.java +++ b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/folding/PropertyFoldingEditHandler.java @@ -39,7 +39,7 @@ public class PropertyFoldingEditHandler { private static UCallExpression findCallExpression(PsiElement foldedPsiElement) { UCallExpression expression = UastContextKt.toUElement(foldedPsiElement, UCallExpression.class); if (expression != null) return expression; - for (PsiElement child : foldedPsiElement.getChildren()) { + for (PsiElement child = foldedPsiElement.getFirstChild(); child != null; child = child.getNextSibling()) { UCallExpression e = UastContextKt.toUElement(child, UCallExpression.class); if (e != null) return e; }