From 7afff0e936ca8a15fda737618b6bb1e77f3f66aa Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 14 Sep 2013 10:25:51 +0400 Subject: [PATCH] global inspections: store parameter references only once --- .../reference/RefMethodImpl.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java index d03b2ca514dd..2cadd1f0db2f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefMethodImpl.java @@ -78,6 +78,26 @@ public class RefMethodImpl extends RefJavaElementImpl implements RefMethod { setConstructor(true); } + @Override + public void add(RefEntity child) { + if (child instanceof RefParameter) { + return; + } + super.add(child); + } + + @Override + public List getChildren() { + List superChildren = super.getChildren(); + if (myParameters == null) return superChildren; + if (superChildren == null || superChildren.isEmpty()) return Arrays.asList(myParameters); + + List allChildren = new ArrayList(superChildren.size() + myParameters.length); + allChildren.addAll(superChildren); + Collections.addAll(allChildren, myParameters); + return allChildren; + } + @Override protected void initialize() { final PsiMethod method = (PsiMethod)getElement();