*/
package com.intellij.psi.impl.compiled;
-import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import java.util.Map;
public class ClsJavaCodeReferenceElementImpl extends ClsElementImpl implements PsiJavaCodeReferenceElement {
- private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.compiled.ClsJavaCodeReferenceElementImpl");
-
private final PsiElement myParent;
private final String myCanonicalText;
private final String myQualifiedName;
private volatile PsiType[] myTypeParametersCachedTypes = null; // in left-to-right-order
@NonNls private static final String EXTENDS_PREFIX = "?extends";
@NonNls private static final String SUPER_PREFIX = "?super";
+ public static final ClsJavaCodeReferenceElementImpl[] EMPTY_ARRAY = new ClsJavaCodeReferenceElementImpl[0];
public ClsJavaCodeReferenceElementImpl(PsiElement parent, String canonicalText) {
myParent = parent;
synchronized (LAZY_BUILT_LOCK) {
if (myRefs == null) {
final String[] strings = getStub().getReferencedNames();
- ClsJavaCodeReferenceElementImpl[] res = new ClsJavaCodeReferenceElementImpl[strings.length];
+ ClsJavaCodeReferenceElementImpl[] res = strings.length == 0 ?
+ ClsJavaCodeReferenceElementImpl.EMPTY_ARRAY :
+ new ClsJavaCodeReferenceElementImpl[strings.length];
for (int i = 0; i < res.length; i++) {
- res[i] = new ClsJavaCodeReferenceElementImpl(this, strings[i]);
- }
+ res[i] = new ClsJavaCodeReferenceElementImpl(this, strings[i]);
+ }
myRefs = res;
}
return myRefs;