diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/IntersectionPackageSet.java b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/IntersectionPackageSet.java index 970cd992fffc..9d72f84642e9 100644 --- a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/IntersectionPackageSet.java +++ b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/IntersectionPackageSet.java @@ -24,6 +24,8 @@ public class IntersectionPackageSet extends PackageSetBase { private final PackageSet myFirstSet; private final PackageSet mySecondSet; + private String myText; + public IntersectionPackageSet(PackageSet firstSet, PackageSet secondSet) { myFirstSet = firstSet; mySecondSet = secondSet; @@ -58,18 +60,21 @@ public class IntersectionPackageSet extends PackageSetBase { @Override @NotNull public String getText() { - StringBuffer buf = new StringBuffer(); - boolean needParen = myFirstSet.getNodePriority() > getNodePriority(); - if (needParen) buf.append('('); - buf.append(myFirstSet.getText()); - if (needParen) buf.append(')'); - buf.append("&&"); - needParen = mySecondSet.getNodePriority() > getNodePriority(); - if (needParen) buf.append('('); - buf.append(mySecondSet.getText()); - if (needParen) buf.append(')'); + if (myText == null) { + final StringBuilder buf = new StringBuilder(); + boolean needParen = myFirstSet.getNodePriority() > getNodePriority(); + if (needParen) buf.append('('); + buf.append(myFirstSet.getText()); + if (needParen) buf.append(')'); + buf.append("&&"); + needParen = mySecondSet.getNodePriority() > getNodePriority(); + if (needParen) buf.append('('); + buf.append(mySecondSet.getText()); + if (needParen) buf.append(')'); - return buf.toString(); + myText = buf.toString(); + } + return myText; } public PackageSet getFirstSet() { diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/UnionPackageSet.java b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/UnionPackageSet.java index 3b51d8c52b6d..8198c2742c1b 100644 --- a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/UnionPackageSet.java +++ b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/UnionPackageSet.java @@ -24,6 +24,8 @@ public class UnionPackageSet extends PackageSetBase { private final PackageSet myFirstSet; private final PackageSet mySecondSet; + private String myText; + public UnionPackageSet(@NotNull PackageSet set1, @NotNull PackageSet set2) { myFirstSet = set1; mySecondSet = set2; @@ -54,7 +56,10 @@ public class UnionPackageSet extends PackageSetBase { @Override @NotNull public String getText() { - return myFirstSet.getText() + "||" + mySecondSet.getText(); + if (myText == null) { + myText = myFirstSet.getText() + "||" + mySecondSet.getText(); + } + return myText; } public PackageSet getFirstSet() {