index anonymous / local classes in libraries (IDEA-78647)

This commit is contained in:
Maxim.Mossienko
2017-08-21 21:22:00 +02:00
parent 12acbacf64
commit d0ebc103c7
12 changed files with 930 additions and 32 deletions

View File

@@ -37,7 +37,7 @@ import static com.intellij.psi.compiled.ClassFileDecompilers.Full;
public class ClassFileStubBuilder implements BinaryFileStubBuilder { public class ClassFileStubBuilder implements BinaryFileStubBuilder {
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.compiled.ClassFileStubBuilder"); private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.compiled.ClassFileStubBuilder");
public static final int STUB_VERSION = 19; public static final int STUB_VERSION = 20;
@Override @Override
public boolean acceptsFile(@NotNull VirtualFile file) { public boolean acceptsFile(@NotNull VirtualFile file) {

View File

@@ -30,6 +30,7 @@ import com.intellij.psi.impl.PsiImplUtil;
import com.intellij.psi.impl.PsiSuperMethodImplUtil; import com.intellij.psi.impl.PsiSuperMethodImplUtil;
import com.intellij.psi.impl.java.stubs.JavaStubElementTypes; import com.intellij.psi.impl.java.stubs.JavaStubElementTypes;
import com.intellij.psi.impl.java.stubs.PsiClassStub; import com.intellij.psi.impl.java.stubs.PsiClassStub;
import com.intellij.psi.impl.java.stubs.impl.PsiClassStubImpl;
import com.intellij.psi.impl.source.*; import com.intellij.psi.impl.source.*;
import com.intellij.psi.impl.source.tree.TreeElement; import com.intellij.psi.impl.source.tree.TreeElement;
import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.scope.PsiScopeProcessor;
@@ -43,9 +44,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import javax.swing.*; import javax.swing.*;
import java.util.Collection; import java.util.*;
import java.util.List;
import java.util.Map;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
@@ -81,10 +80,17 @@ public class ClsClassImpl extends ClsMemberImpl<PsiClassStub<?>> implements PsiE
} }
@Override @Override
@NotNull @Nullable
public String getQualifiedName() { public String getQualifiedName() {
return getStub().getQualifiedName(); return getStub().getQualifiedName();
} }
boolean isAnonymousOrLocalClass() {
PsiClassStub<?> stub = getStub();
return !(stub instanceof PsiClassStubImpl) ||
((PsiClassStubImpl)stub).isAnonymousInner() ||
((PsiClassStubImpl)stub).isLocalClassInner();
}
@Override @Override
@NotNull @NotNull
@@ -201,7 +207,24 @@ public class ClsClassImpl extends ClsMemberImpl<PsiClassStub<?>> implements PsiE
@NotNull @NotNull
@Override @Override
public List<PsiClass> getOwnInnerClasses() { public List<PsiClass> getOwnInnerClasses() {
return asList(getStub().getChildrenByType(JavaStubElementTypes.CLASS, PsiClass.ARRAY_FACTORY)); PsiClass[] classes = getStub().getChildrenByType(JavaStubElementTypes.CLASS, PsiClass.ARRAY_FACTORY);
if (classes.length == 0) return Collections.emptyList();
int anonymousOrLocalClassesCount = 0;
for(PsiClass aClass:classes) {
if (aClass instanceof ClsClassImpl && ((ClsClassImpl)aClass).isAnonymousOrLocalClass()) {
++anonymousOrLocalClassesCount;
}
}
if (anonymousOrLocalClassesCount == 0) return asList(classes);
ArrayList<PsiClass> result = new ArrayList<>(classes.length - anonymousOrLocalClassesCount);
for(PsiClass aClass:classes) {
if (!(aClass instanceof ClsClassImpl) || !((ClsClassImpl)aClass).isAnonymousOrLocalClass()) {
result.add(aClass);
}
}
return result;
} }
@Override @Override

View File

@@ -73,8 +73,15 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
private String myInternalName; private String myInternalName;
private PsiClassStub myResult; private PsiClassStub myResult;
private PsiModifierListStub myModList; private PsiModifierListStub myModList;
private final boolean myAnonymousInner;
private final boolean myLocalClassInner;
public StubBuildingVisitor(T classSource, InnerClassSourceStrategy<T> innersStrategy, StubElement parent, int access, String shortName) { public StubBuildingVisitor(T classSource, InnerClassSourceStrategy<T> innersStrategy, StubElement parent, int access, String shortName) {
this(classSource, innersStrategy, parent, access, shortName, false, false);
}
public StubBuildingVisitor(T classSource, InnerClassSourceStrategy<T> innersStrategy, StubElement parent, int access, String shortName,
boolean anonymousInner, boolean localClassInner) {
super(ASM_API); super(ASM_API);
mySource = classSource; mySource = classSource;
myInnersStrategy = innersStrategy; myInnersStrategy = innersStrategy;
@@ -82,6 +89,8 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
myAccess = access; myAccess = access;
myShortName = shortName; myShortName = shortName;
myMapping = createMapping(classSource); myMapping = createMapping(classSource);
myAnonymousInner = anonymousInner;
myLocalClassInner = localClassInner;
} }
public PsiClassStub<?> getResult() { public PsiClassStub<?> getResult() {
@@ -94,15 +103,16 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
String parentName = myParent instanceof PsiClassStub ? ((PsiClassStub)myParent).getQualifiedName() : String parentName = myParent instanceof PsiClassStub ? ((PsiClassStub)myParent).getQualifiedName() :
myParent instanceof PsiJavaFileStub ? ((PsiJavaFileStub)myParent).getPackageName() : myParent instanceof PsiJavaFileStub ? ((PsiJavaFileStub)myParent).getPackageName() :
null; null;
String fqn = getFqn(name, myShortName, parentName); String fqn = myAnonymousInner || myLocalClassInner ? null : getFqn(name, myShortName, parentName);
String shortName = myShortName != null && name.endsWith(myShortName) ? myShortName : PsiNameHelper.getShortClassName(fqn); String shortName = myShortName != null && name.endsWith(myShortName) ? myShortName : fqn != null ? PsiNameHelper.getShortClassName(fqn) : myShortName;
int flags = myAccess | access; int flags = myAccess | access;
boolean isDeprecated = isSet(flags, Opcodes.ACC_DEPRECATED); boolean isDeprecated = isSet(flags, Opcodes.ACC_DEPRECATED);
boolean isInterface = isSet(flags, Opcodes.ACC_INTERFACE); boolean isInterface = isSet(flags, Opcodes.ACC_INTERFACE);
boolean isEnum = isSet(flags, Opcodes.ACC_ENUM); boolean isEnum = isSet(flags, Opcodes.ACC_ENUM);
boolean isAnnotationType = isSet(flags, Opcodes.ACC_ANNOTATION); boolean isAnnotationType = isSet(flags, Opcodes.ACC_ANNOTATION);
byte stubFlags = PsiClassStubImpl.packFlags(isDeprecated, isInterface, isEnum, false, false, isAnnotationType, false, false); short stubFlags = PsiClassStubImpl.packFlags(isDeprecated, isInterface, isEnum, false, false,
isAnnotationType, false, false, myAnonymousInner, myLocalClassInner);
myResult = new PsiClassStubImpl(JavaStubElementTypes.CLASS, myParent, fqn, shortName, null, stubFlags); myResult = new PsiClassStubImpl(JavaStubElementTypes.CLASS, myParent, fqn, shortName, null, stubFlags);
myModList = new PsiModifierListStubImpl(myResult, packClassFlags(flags)); myModList = new PsiModifierListStubImpl(myResult, packClassFlags(flags));
@@ -243,16 +253,32 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
@Override @Override
public void visitInnerClass(String name, String outerName, String innerName, int access) { public void visitInnerClass(String name, String outerName, String innerName, int access) {
if (isSet(access, Opcodes.ACC_SYNTHETIC)) return; if (isSet(access, Opcodes.ACC_SYNTHETIC)) return;
if (innerName == null || outerName == null) return; String jvmClassName = innerName;
boolean isAnonymousInner = innerName == null;
boolean isLocalClassInner = !isAnonymousInner && outerName == null;
if (innerName == null || outerName == null) {
int $index = name.lastIndexOf('$');
if (isAnonymousInner) {
jvmClassName = name.substring($index + 1);
innerName = jvmClassName;
outerName = name.substring(0, $index);
} else { // isLocalClassInner
outerName = name.substring(0, $index);
jvmClassName = name.substring($index + 1);
}
}
if (myParent instanceof PsiFileStub && myInternalName.equals(name)) { if (myParent instanceof PsiFileStub && myInternalName.equals(name)) {
throw new OutOfOrderInnerClassException(); // our result is inner class throw new OutOfOrderInnerClassException(); // our result is inner class
} }
if (myInternalName.equals(outerName)) { if (myInternalName.equals(outerName)) {
T innerClass = myInnersStrategy.findInnerClass(innerName, mySource); T innerClass = myInnersStrategy.findInnerClass(jvmClassName, mySource);
if (innerClass != null) { if (innerClass != null) {
myInnersStrategy.accept(innerClass, new StubBuildingVisitor<>(innerClass, myInnersStrategy, myResult, access, innerName)); myInnersStrategy.accept(innerClass, new StubBuildingVisitor<>(innerClass, myInnersStrategy, myResult, access, innerName, isAnonymousInner, isLocalClassInner));
} }
} }
} }

View File

@@ -133,8 +133,8 @@ public abstract class JavaClassElementType extends JavaStubElementType<PsiClassS
} }
} }
final byte flags = PsiClassStubImpl.packFlags(isDeprecatedByComment, isInterface, isEnum, isEnumConst, isAnonymous, isAnnotation, final short flags = PsiClassStubImpl.packFlags(isDeprecatedByComment, isInterface, isEnum, isEnumConst, isAnonymous, isAnnotation,
isInQualifiedNew, hasDeprecatedAnnotation); isInQualifiedNew, hasDeprecatedAnnotation, false, false);
final JavaClassElementType type = typeForClass(isAnonymous, isEnumConst); final JavaClassElementType type = typeForClass(isAnonymous, isEnumConst);
return new PsiClassStubImpl(type, parentStub, qualifiedName, name, baseRef, flags); return new PsiClassStubImpl(type, parentStub, qualifiedName, name, baseRef, flags);
} }
@@ -147,7 +147,7 @@ public abstract class JavaClassElementType extends JavaStubElementType<PsiClassS
@Override @Override
public void serialize(@NotNull PsiClassStub stub, @NotNull StubOutputStream dataStream) throws IOException { public void serialize(@NotNull PsiClassStub stub, @NotNull StubOutputStream dataStream) throws IOException {
dataStream.writeByte(((PsiClassStubImpl)stub).getFlags()); dataStream.writeShort(((PsiClassStubImpl)stub).getFlags());
if (!stub.isAnonymous()) { if (!stub.isAnonymous()) {
dataStream.writeName(stub.getName()); dataStream.writeName(stub.getName());
dataStream.writeName(stub.getQualifiedName()); dataStream.writeName(stub.getQualifiedName());
@@ -161,7 +161,7 @@ public abstract class JavaClassElementType extends JavaStubElementType<PsiClassS
@NotNull @NotNull
@Override @Override
public PsiClassStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException { public PsiClassStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
byte flags = dataStream.readByte(); short flags = dataStream.readShort();
boolean isAnonymous = PsiClassStubImpl.isAnonymous(flags); boolean isAnonymous = PsiClassStubImpl.isAnonymous(flags);
boolean isEnumConst = PsiClassStubImpl.isEnumConstInitializer(flags); boolean isEnumConst = PsiClassStubImpl.isEnumConstInitializer(flags);
JavaClassElementType type = typeForClass(isAnonymous, isEnumConst); JavaClassElementType type = typeForClass(isAnonymous, isEnumConst);
@@ -191,7 +191,7 @@ public abstract class JavaClassElementType extends JavaStubElementType<PsiClassS
} }
else { else {
final String shortName = stub.getName(); final String shortName = stub.getName();
if (shortName != null) { if (shortName != null && (!(stub instanceof PsiClassStubImpl) || !((PsiClassStubImpl)stub).isAnonymousInner())) {
sink.occurrence(JavaStubIndexKeys.CLASS_SHORT_NAMES, shortName); sink.occurrence(JavaStubIndexKeys.CLASS_SHORT_NAMES, shortName);
} }

View File

@@ -39,11 +39,13 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
private static final int ANON_TYPE = 0x20; private static final int ANON_TYPE = 0x20;
private static final int IN_QUALIFIED_NEW = 0x40; private static final int IN_QUALIFIED_NEW = 0x40;
private static final int DEPRECATED_ANNOTATION = 0x80; private static final int DEPRECATED_ANNOTATION = 0x80;
private static final int ANONYMOUS_INNER = 0x100;
private static final int LOCAL_CLASS_INNER = 0x200;
private final String myQualifiedName; private final String myQualifiedName;
private final String myName; private final String myName;
private final String myBaseRefText; private final String myBaseRefText;
private final byte myFlags; private final short myFlags;
private String mySourceFileName; private String mySourceFileName;
public PsiClassStubImpl(final JavaClassElementType type, public PsiClassStubImpl(final JavaClassElementType type,
@@ -51,7 +53,7 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
@Nullable final String qualifiedName, @Nullable final String qualifiedName,
@Nullable final String name, @Nullable final String name,
@Nullable final String baseRefText, @Nullable final String baseRefText,
final byte flags) { final short flags) {
super(parent, type); super(parent, type);
myQualifiedName = qualifiedName; myQualifiedName = qualifiedName;
myName = name; myName = name;
@@ -103,7 +105,7 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
return isEnumConstInitializer(myFlags); return isEnumConstInitializer(myFlags);
} }
public static boolean isEnumConstInitializer(final byte flags) { public static boolean isEnumConstInitializer(final short flags) {
return BitUtil.isSet(flags, ENUM_CONSTANT_INITIALIZER); return BitUtil.isSet(flags, ENUM_CONSTANT_INITIALIZER);
} }
@@ -112,7 +114,7 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
return isAnonymous(myFlags); return isAnonymous(myFlags);
} }
public static boolean isAnonymous(final byte flags) { public static boolean isAnonymous(final short flags) {
return BitUtil.isSet(flags, ANONYMOUS); return BitUtil.isSet(flags, ANONYMOUS);
} }
@@ -147,19 +149,22 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
return BitUtil.isSet(myFlags, IN_QUALIFIED_NEW); return BitUtil.isSet(myFlags, IN_QUALIFIED_NEW);
} }
public byte getFlags() { public short getFlags() {
return myFlags; return myFlags;
} }
public static byte packFlags(boolean isDeprecated, public static short packFlags(boolean isDeprecated,
boolean isInterface, boolean isInterface,
boolean isEnum, boolean isEnum,
boolean isEnumConstantInitializer, boolean isEnumConstantInitializer,
boolean isAnonymous, boolean isAnonymous,
boolean isAnnotationType, boolean isAnnotationType,
boolean isInQualifiedNew, boolean isInQualifiedNew,
boolean hasDeprecatedAnnotation) { boolean hasDeprecatedAnnotation,
byte flags = 0; boolean anonymousInner,
boolean localClassInner
) {
short flags = 0;
if (isDeprecated) flags |= DEPRECATED; if (isDeprecated) flags |= DEPRECATED;
if (isInterface) flags |= INTERFACE; if (isInterface) flags |= INTERFACE;
if (isEnum) flags |= ENUM; if (isEnum) flags |= ENUM;
@@ -168,9 +173,18 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
if (isAnnotationType) flags |= ANON_TYPE; if (isAnnotationType) flags |= ANON_TYPE;
if (isInQualifiedNew) flags |= IN_QUALIFIED_NEW; if (isInQualifiedNew) flags |= IN_QUALIFIED_NEW;
if (hasDeprecatedAnnotation) flags |= DEPRECATED_ANNOTATION; if (hasDeprecatedAnnotation) flags |= DEPRECATED_ANNOTATION;
if (anonymousInner) flags |= ANONYMOUS_INNER;
if (localClassInner) flags |= LOCAL_CLASS_INNER;
return flags; return flags;
} }
public boolean isAnonymousInner() {
return BitUtil.isSet(myFlags, ANONYMOUS_INNER);
}
public boolean isLocalClassInner() {
return BitUtil.isSet(myFlags, LOCAL_CLASS_INNER);
}
@Override @Override
@SuppressWarnings("SpellCheckingInspection") @SuppressWarnings("SpellCheckingInspection")
public String toString() { public String toString() {
@@ -215,6 +229,14 @@ public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements
builder.append(" inqualifnew"); builder.append(" inqualifnew");
} }
if (isAnonymousInner()) {
builder.append(" jvmAnonymousInner");
}
if (isLocalClassInner()) {
builder.append(" jvmLocalClassInner");
}
builder.append("]"); builder.append("]");
return builder.toString(); return builder.toString();

View File

@@ -38,7 +38,7 @@ import java.io.IOException;
* @author max * @author max
*/ */
public class JavaFileElementType extends ILightStubFileElementType<PsiJavaFileStub> { public class JavaFileElementType extends ILightStubFileElementType<PsiJavaFileStub> {
public static final int STUB_VERSION = 40; public static final int STUB_VERSION = 41;
public JavaFileElementType() { public JavaFileElementType() {
super("java.FILE", JavaLanguage.INSTANCE); super("java.FILE", JavaLanguage.INSTANCE);

View File

@@ -4,6 +4,545 @@ PsiJavaFileStub [java.util.concurrent]
PsiTypeParameterListStub PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:] PsiRefListStub[IMPLEMENTS_LIST:]
PsiClassStub[enum name=7 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 7:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=6 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 6:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=5 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 5:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=4 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 4:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=3 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 3:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=2 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 2:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiClassStub[enum name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.util.concurrent.TimeUnit]
PsiRefListStub[IMPLEMENTS_LIST:]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toNanos:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMicros:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMillis:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toSeconds:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toMinutes:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toHours:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[toDays:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[convert:long]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[excessNanos:int]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:long]
PsiModifierListStub[mask=0]
PsiParameterStub[p2:long]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[enumconst NANOSECONDS:java.util.concurrent.TimeUnit] PsiFieldStub[enumconst NANOSECONDS:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=25] PsiModifierListStub[mask=25]
PsiFieldStub[enumconst MICROSECONDS:java.util.concurrent.TimeUnit] PsiFieldStub[enumconst MICROSECONDS:java.util.concurrent.TimeUnit]

View File

@@ -1021,6 +1021,35 @@ PsiJavaFileStub [java.util]
PsiParameterStub[p1:java.lang.Object] PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0] PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:] PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<java.util.Map.Entry<K,V>>]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p2:java.util.Iterator]
PsiModifierListStub[mask=0]
PsiParameterStub[p3:java.lang.Class]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:java.util.Map.Entry<K,V>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[s:java.util.Set<java.util.Map.Entry<K,V>>] PsiFieldStub[s:java.util.Set<java.util.Map.Entry<K,V>>]
PsiModifierListStub[mask=18] PsiModifierListStub[mask=18]
PsiFieldStub[valueType:java.lang.Class<V>] PsiFieldStub[valueType:java.lang.Class<V>]
@@ -1327,6 +1356,67 @@ PsiJavaFileStub [java.util]
PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedCollection<E>] PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedCollection<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>] PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.ListIterator<E>]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p2:java.util.ListIterator]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasPrevious:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[previous:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[nextIndex:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[previousIndex:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[set:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:E]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[add:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:E]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=65247728283967356L] PsiFieldStub[serialVersionUID:long=65247728283967356L]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiFieldStub[list:java.util.List<E>] PsiFieldStub[list:java.util.List<E>]
@@ -1523,6 +1613,33 @@ PsiJavaFileStub [java.util]
PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection<E>, java.io.Serializable] PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection<E>, java.io.Serializable]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<E>]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p2:java.util.Iterator]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=1578914078182001775L] PsiFieldStub[serialVersionUID:long=1578914078182001775L]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiFieldStub[c:java.util.Collection<E>] PsiFieldStub[c:java.util.Collection<E>]
@@ -2369,6 +2486,33 @@ PsiJavaFileStub [java.util]
PsiTypeParameterListStub PsiTypeParameterListStub
PsiParameterListStub PsiParameterListStub
PsiRefListStub[THROWS_LIST:] PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<java.util.Map.Entry<K,V>>]
PsiFieldStub[i:java.util.Iterator<? extends java.util.Map.Entry<? extends K,? extends V>>]
PsiModifierListStub[mask=18]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:java.util.Map.Entry<K,V>]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=7854390611657943733L] PsiFieldStub[serialVersionUID:long=7854390611657943733L]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiMethodStub[cons UnmodifiableEntrySet:void] PsiMethodStub[cons UnmodifiableEntrySet:void]
@@ -2563,6 +2707,69 @@ PsiJavaFileStub [java.util]
PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:java.util.Collections.UnmodifiableCollection<E>] PsiRefListStub[EXTENDS_LIST:java.util.Collections.UnmodifiableCollection<E>]
PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>] PsiRefListStub[IMPLEMENTS_LIST:java.util.List<E>]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.ListIterator<E>]
PsiFieldStub[i:java.util.ListIterator<? extends E>]
PsiModifierListStub[mask=18]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p2:int]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasPrevious:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[previous:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[nextIndex:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[previousIndex:int]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[set:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:E]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[add:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:E]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=-283967356065247728L] PsiFieldStub[serialVersionUID:long=-283967356065247728L]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiFieldStub[list:java.util.List<? extends E>] PsiFieldStub[list:java.util.List<? extends E>]
@@ -2758,6 +2965,33 @@ PsiJavaFileStub [java.util]
PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_BOUNDS_LIST:]
PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection<E>, java.io.Serializable] PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection<E>, java.io.Serializable]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<E>]
PsiFieldStub[i:java.util.Iterator<? extends E>]
PsiModifierListStub[mask=18]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[serialVersionUID:long=1820017752578914078L] PsiFieldStub[serialVersionUID:long=1820017752578914078L]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiFieldStub[c:java.util.Collection<? extends E>] PsiFieldStub[c:java.util.Collection<? extends E>]
@@ -2862,6 +3096,59 @@ PsiJavaFileStub [java.util]
PsiTypeParameterListStub PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:java.lang.Comparable<java.util.Collections.SelfComparable>] PsiRefListStub[EXTENDS_LIST:java.lang.Comparable<java.util.Collections.SelfComparable>]
PsiRefListStub[IMPLEMENTS_LIST:] PsiRefListStub[IMPLEMENTS_LIST:]
PsiClassStub[name=2 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Enumeration<T>]
PsiFieldStub[i:java.util.Iterator<T>]
PsiModifierListStub[mask=18]
PsiMethodStub[cons 2:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:java.util.Collection]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasMoreElements:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[nextElement:T]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiClassStub[name=1 fqn=null jvmAnonymousInner]
PsiModifierListStub[mask=4120]
PsiTypeParameterListStub
PsiRefListStub[EXTENDS_LIST:]
PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator<E>]
PsiFieldStub[hasNext:boolean]
PsiModifierListStub[mask=2]
PsiMethodStub[cons 1:void]
PsiModifierListStub[mask=4096]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:java.lang.Object]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[hasNext:boolean]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[next:E]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[remove:void]
PsiModifierListStub[mask=1]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiFieldStub[BINARYSEARCH_THRESHOLD:int=5000] PsiFieldStub[BINARYSEARCH_THRESHOLD:int=5000]
PsiModifierListStub[mask=26] PsiModifierListStub[mask=26]
PsiFieldStub[REVERSE_THRESHOLD:int=18] PsiFieldStub[REVERSE_THRESHOLD:int=18]

View File

@@ -298,12 +298,18 @@ class Intf {
def clazz = myFixture.addClass("package foo.bar; class Goo implements Runnable { public void run() {} }") def clazz = myFixture.addClass("package foo.bar; class Goo implements Runnable { public void run() {} }")
def ourRun = null def ourRun = null
def sdkRun = null def sdkRun = null
def sdkRun2 = null
def sdkRun3 = null
runInEdtAndWait { runInEdtAndWait {
ourRun = clazz.methods[0] ourRun = clazz.methods[0]
sdkRun = ourRun.containingClass.interfaces[0].methods[0] sdkRun = ourRun.containingClass.interfaces[0].methods[0]
sdkRun2 = myFixture.javaFacade.findClass("java.security.PrivilegedAction").methods[0]
sdkRun3 = myFixture.javaFacade.findClass("java.security.PrivilegedExceptionAction").methods[0]
} }
def withLibs = filterJavaItems(getPopupElements(new GotoSymbolModel2(project), 'run ', true)) def withLibs = filterJavaItems(getPopupElements(new GotoSymbolModel2(project), 'run ', true))
withLibs.remove(sdkRun2)
withLibs.remove(sdkRun3)
assert withLibs == [sdkRun] assert withLibs == [sdkRun]
assert !(ourRun in withLibs) assert !(ourRun in withLibs)

View File

@@ -17,7 +17,6 @@ package com.intellij.java.navigation;
import com.intellij.JavaTestUtil; import com.intellij.JavaTestUtil;
import com.intellij.codeInsight.navigation.GotoTargetHandler; import com.intellij.codeInsight.navigation.GotoTargetHandler;
import com.intellij.idea.Bombed;
import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.roots.ModuleRootModificationUtil;
import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiClass; import com.intellij.psi.PsiClass;
@@ -31,7 +30,6 @@ import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.ContainerUtil;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar;
import java.util.List; import java.util.List;
public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCase { public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCase {
@@ -312,7 +310,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas
assertSize(2, getTargets(file)); assertSize(2, getTargets(file));
} }
@Bombed(month = Calendar.SEPTEMBER, user = "Maxim.Mossienko", day = 15)
public void testAnonymousAndLocalClassesInLibrary() { public void testAnonymousAndLocalClassesInLibrary() {
ModuleRootModificationUtil.addModuleLibrary( ModuleRootModificationUtil.addModuleLibrary(
myModule, myModule,
@@ -344,7 +341,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas
assertContainsElements(names, "MyLocalClassImplementationInInner"); assertContainsElements(names, "MyLocalClassImplementationInInner");
assertContainsElements(names, "MyInterfaceImplementation"); assertContainsElements(names, "MyInterfaceImplementation");
/* // todo
implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementation"); implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementation");
assertNull(implementation); assertNull(implementation);
implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementationInInner"); implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementationInInner");
@@ -355,7 +351,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas
implementation = myFixture.getJavaFacade().findClass("2"); implementation = myFixture.getJavaFacade().findClass("2");
assertNull(implementation); assertNull(implementation);
*/
} }
private PsiElement[] getTargets(PsiFile file) { private PsiElement[] getTargets(PsiFile file) {

Binary file not shown.

Binary file not shown.