From d0ebc103c71345d4fe319ba39a36226dc72897ad Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Mon, 21 Aug 2017 21:22:00 +0200 Subject: [PATCH] index anonymous / local classes in libraries (IDEA-78647) --- .../impl/compiled/ClassFileStubBuilder.java | 2 +- .../psi/impl/compiled/ClsClassImpl.java | 33 +- .../impl/compiled/StubBuildingVisitor.java | 40 +- .../impl/java/stubs/JavaClassElementType.java | 10 +- .../java/stubs/impl/PsiClassStubImpl.java | 38 +- .../psi/impl/source/JavaFileElementType.java | 2 +- .../testData/psi/cls/stubBuilder/TimeUnit.txt | 539 ++++++++++++++++++ .../psi/cls/stubBuilder/UtilCollections.txt | 287 ++++++++++ .../java/navigation/ChooseByNameTest.groovy | 6 + .../GotoImplementationHandlerTest.java | 5 - java/mockJDK-1.7/jre/lib/rt.jar | Bin 1129892 -> 1130626 bytes java/mockJDK-1.7/src.zip | Bin 1195251 -> 1197829 bytes 12 files changed, 930 insertions(+), 32 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java index 4a3a2c586e7e..97e63e3e60c1 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClassFileStubBuilder.java @@ -37,7 +37,7 @@ import static com.intellij.psi.compiled.ClassFileDecompilers.Full; public class ClassFileStubBuilder implements BinaryFileStubBuilder { 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 public boolean acceptsFile(@NotNull VirtualFile file) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java index 828ab5a0ba5f..1dd7b6591b97 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsClassImpl.java @@ -30,6 +30,7 @@ import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.impl.PsiSuperMethodImplUtil; import com.intellij.psi.impl.java.stubs.JavaStubElementTypes; 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.tree.TreeElement; import com.intellij.psi.scope.PsiScopeProcessor; @@ -43,9 +44,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import static java.util.Arrays.asList; @@ -81,10 +80,17 @@ public class ClsClassImpl extends ClsMemberImpl> implements PsiE } @Override - @NotNull + @Nullable public String getQualifiedName() { return getStub().getQualifiedName(); } + + boolean isAnonymousOrLocalClass() { + PsiClassStub stub = getStub(); + return !(stub instanceof PsiClassStubImpl) || + ((PsiClassStubImpl)stub).isAnonymousInner() || + ((PsiClassStubImpl)stub).isLocalClassInner(); + } @Override @NotNull @@ -201,7 +207,24 @@ public class ClsClassImpl extends ClsMemberImpl> implements PsiE @NotNull @Override public List 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 result = new ArrayList<>(classes.length - anonymousOrLocalClassesCount); + for(PsiClass aClass:classes) { + if (!(aClass instanceof ClsClassImpl) || !((ClsClassImpl)aClass).isAnonymousOrLocalClass()) { + result.add(aClass); + } + } + return result; } @Override diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java index 5ffdc2edceb1..5cf397cabc4c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java @@ -73,8 +73,15 @@ public class StubBuildingVisitor extends ClassVisitor { private String myInternalName; private PsiClassStub myResult; private PsiModifierListStub myModList; - + private final boolean myAnonymousInner; + private final boolean myLocalClassInner; + public StubBuildingVisitor(T classSource, InnerClassSourceStrategy innersStrategy, StubElement parent, int access, String shortName) { + this(classSource, innersStrategy, parent, access, shortName, false, false); + } + + public StubBuildingVisitor(T classSource, InnerClassSourceStrategy innersStrategy, StubElement parent, int access, String shortName, + boolean anonymousInner, boolean localClassInner) { super(ASM_API); mySource = classSource; myInnersStrategy = innersStrategy; @@ -82,6 +89,8 @@ public class StubBuildingVisitor extends ClassVisitor { myAccess = access; myShortName = shortName; myMapping = createMapping(classSource); + myAnonymousInner = anonymousInner; + myLocalClassInner = localClassInner; } public PsiClassStub getResult() { @@ -94,15 +103,16 @@ public class StubBuildingVisitor extends ClassVisitor { String parentName = myParent instanceof PsiClassStub ? ((PsiClassStub)myParent).getQualifiedName() : myParent instanceof PsiJavaFileStub ? ((PsiJavaFileStub)myParent).getPackageName() : null; - String fqn = getFqn(name, myShortName, parentName); - String shortName = myShortName != null && name.endsWith(myShortName) ? myShortName : PsiNameHelper.getShortClassName(fqn); + String fqn = myAnonymousInner || myLocalClassInner ? null : getFqn(name, myShortName, parentName); + String shortName = myShortName != null && name.endsWith(myShortName) ? myShortName : fqn != null ? PsiNameHelper.getShortClassName(fqn) : myShortName; int flags = myAccess | access; boolean isDeprecated = isSet(flags, Opcodes.ACC_DEPRECATED); boolean isInterface = isSet(flags, Opcodes.ACC_INTERFACE); boolean isEnum = isSet(flags, Opcodes.ACC_ENUM); 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); myModList = new PsiModifierListStubImpl(myResult, packClassFlags(flags)); @@ -243,16 +253,32 @@ public class StubBuildingVisitor extends ClassVisitor { @Override public void visitInnerClass(String name, String outerName, String innerName, int access) { 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)) { throw new OutOfOrderInnerClassException(); // our result is inner class } if (myInternalName.equals(outerName)) { - T innerClass = myInnersStrategy.findInnerClass(innerName, mySource); + T innerClass = myInnersStrategy.findInnerClass(jvmClassName, mySource); 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)); } } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java index db62d0b4554d..73eb8a2671c0 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java @@ -133,8 +133,8 @@ public abstract class JavaClassElementType extends JavaStubElementType extends StubBase implements private static final int ANON_TYPE = 0x20; private static final int IN_QUALIFIED_NEW = 0x40; 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 myName; private final String myBaseRefText; - private final byte myFlags; + private final short myFlags; private String mySourceFileName; public PsiClassStubImpl(final JavaClassElementType type, @@ -51,7 +53,7 @@ public class PsiClassStubImpl extends StubBase implements @Nullable final String qualifiedName, @Nullable final String name, @Nullable final String baseRefText, - final byte flags) { + final short flags) { super(parent, type); myQualifiedName = qualifiedName; myName = name; @@ -103,7 +105,7 @@ public class PsiClassStubImpl extends StubBase implements return isEnumConstInitializer(myFlags); } - public static boolean isEnumConstInitializer(final byte flags) { + public static boolean isEnumConstInitializer(final short flags) { return BitUtil.isSet(flags, ENUM_CONSTANT_INITIALIZER); } @@ -112,7 +114,7 @@ public class PsiClassStubImpl extends StubBase implements return isAnonymous(myFlags); } - public static boolean isAnonymous(final byte flags) { + public static boolean isAnonymous(final short flags) { return BitUtil.isSet(flags, ANONYMOUS); } @@ -147,19 +149,22 @@ public class PsiClassStubImpl extends StubBase implements return BitUtil.isSet(myFlags, IN_QUALIFIED_NEW); } - public byte getFlags() { + public short getFlags() { return myFlags; } - public static byte packFlags(boolean isDeprecated, + public static short packFlags(boolean isDeprecated, boolean isInterface, boolean isEnum, boolean isEnumConstantInitializer, boolean isAnonymous, boolean isAnnotationType, boolean isInQualifiedNew, - boolean hasDeprecatedAnnotation) { - byte flags = 0; + boolean hasDeprecatedAnnotation, + boolean anonymousInner, + boolean localClassInner + ) { + short flags = 0; if (isDeprecated) flags |= DEPRECATED; if (isInterface) flags |= INTERFACE; if (isEnum) flags |= ENUM; @@ -168,9 +173,18 @@ public class PsiClassStubImpl extends StubBase implements if (isAnnotationType) flags |= ANON_TYPE; if (isInQualifiedNew) flags |= IN_QUALIFIED_NEW; if (hasDeprecatedAnnotation) flags |= DEPRECATED_ANNOTATION; + if (anonymousInner) flags |= ANONYMOUS_INNER; + if (localClassInner) flags |= LOCAL_CLASS_INNER; return flags; } + public boolean isAnonymousInner() { + return BitUtil.isSet(myFlags, ANONYMOUS_INNER); + } + public boolean isLocalClassInner() { + return BitUtil.isSet(myFlags, LOCAL_CLASS_INNER); + } + @Override @SuppressWarnings("SpellCheckingInspection") public String toString() { @@ -215,6 +229,14 @@ public class PsiClassStubImpl extends StubBase implements builder.append(" inqualifnew"); } + if (isAnonymousInner()) { + builder.append(" jvmAnonymousInner"); + } + + if (isLocalClassInner()) { + builder.append(" jvmLocalClassInner"); + } + builder.append("]"); return builder.toString(); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java index 73ce45953d30..f867b260ab29 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java @@ -38,7 +38,7 @@ import java.io.IOException; * @author max */ public class JavaFileElementType extends ILightStubFileElementType { - public static final int STUB_VERSION = 40; + public static final int STUB_VERSION = 41; public JavaFileElementType() { super("java.FILE", JavaLanguage.INSTANCE); diff --git a/java/java-tests/testData/psi/cls/stubBuilder/TimeUnit.txt b/java/java-tests/testData/psi/cls/stubBuilder/TimeUnit.txt index 4872f919f31c..092530a89b7a 100644 --- a/java/java-tests/testData/psi/cls/stubBuilder/TimeUnit.txt +++ b/java/java-tests/testData/psi/cls/stubBuilder/TimeUnit.txt @@ -4,6 +4,545 @@ PsiJavaFileStub [java.util.concurrent] PsiTypeParameterListStub PsiRefListStub[EXTENDS_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] PsiModifierListStub[mask=25] PsiFieldStub[enumconst MICROSECONDS:java.util.concurrent.TimeUnit] diff --git a/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt b/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt index 9b46a43bc974..3352290feae0 100644 --- a/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt +++ b/java/java-tests/testData/psi/cls/stubBuilder/UtilCollections.txt @@ -1021,6 +1021,35 @@ PsiJavaFileStub [java.util] PsiParameterStub[p1:java.lang.Object] PsiModifierListStub[mask=0] PsiRefListStub[THROWS_LIST:] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator>] + 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] + PsiModifierListStub[mask=1] + PsiTypeParameterListStub + PsiParameterListStub + PsiRefListStub[THROWS_LIST:] PsiFieldStub[s:java.util.Set>] PsiModifierListStub[mask=18] PsiFieldStub[valueType:java.lang.Class] @@ -1327,6 +1356,67 @@ PsiJavaFileStub [java.util] PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_LIST:java.util.Collections.CheckedCollection] PsiRefListStub[IMPLEMENTS_LIST:java.util.List] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.ListIterator] + 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] PsiModifierListStub[mask=26] PsiFieldStub[list:java.util.List] @@ -1523,6 +1613,33 @@ PsiJavaFileStub [java.util] PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection, java.io.Serializable] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator] + 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] PsiModifierListStub[mask=26] PsiFieldStub[c:java.util.Collection] @@ -2369,6 +2486,33 @@ PsiJavaFileStub [java.util] PsiTypeParameterListStub PsiParameterListStub PsiRefListStub[THROWS_LIST:] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator>] + PsiFieldStub[i:java.util.Iterator>] + 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] + PsiModifierListStub[mask=1] + PsiTypeParameterListStub + PsiParameterListStub + PsiRefListStub[THROWS_LIST:] + PsiMethodStub[remove:void] + PsiModifierListStub[mask=1] + PsiTypeParameterListStub + PsiParameterListStub + PsiRefListStub[THROWS_LIST:] PsiFieldStub[serialVersionUID:long=7854390611657943733L] PsiModifierListStub[mask=26] PsiMethodStub[cons UnmodifiableEntrySet:void] @@ -2563,6 +2707,69 @@ PsiJavaFileStub [java.util] PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_LIST:java.util.Collections.UnmodifiableCollection] PsiRefListStub[IMPLEMENTS_LIST:java.util.List] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.ListIterator] + PsiFieldStub[i:java.util.ListIterator] + 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] PsiModifierListStub[mask=26] PsiFieldStub[list:java.util.List] @@ -2758,6 +2965,33 @@ PsiJavaFileStub [java.util] PsiRefListStub[EXTENDS_BOUNDS_LIST:] PsiRefListStub[EXTENDS_LIST:] PsiRefListStub[IMPLEMENTS_LIST:java.util.Collection, java.io.Serializable] + PsiClassStub[name=1 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4096] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.Iterator] + PsiFieldStub[i:java.util.Iterator] + 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] PsiModifierListStub[mask=26] PsiFieldStub[c:java.util.Collection] @@ -2862,6 +3096,59 @@ PsiJavaFileStub [java.util] PsiTypeParameterListStub PsiRefListStub[EXTENDS_LIST:java.lang.Comparable] PsiRefListStub[IMPLEMENTS_LIST:] + PsiClassStub[name=2 fqn=null jvmAnonymousInner] + PsiModifierListStub[mask=4120] + PsiTypeParameterListStub + PsiRefListStub[EXTENDS_LIST:] + PsiRefListStub[IMPLEMENTS_LIST:java.util.Enumeration] + PsiFieldStub[i:java.util.Iterator] + 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] + 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] PsiModifierListStub[mask=26] PsiFieldStub[REVERSE_THRESHOLD:int=18] diff --git a/java/java-tests/testSrc/com/intellij/java/navigation/ChooseByNameTest.groovy b/java/java-tests/testSrc/com/intellij/java/navigation/ChooseByNameTest.groovy index 6767f21cb9ce..4f291283bf19 100644 --- a/java/java-tests/testSrc/com/intellij/java/navigation/ChooseByNameTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/navigation/ChooseByNameTest.groovy @@ -298,12 +298,18 @@ class Intf { def clazz = myFixture.addClass("package foo.bar; class Goo implements Runnable { public void run() {} }") def ourRun = null def sdkRun = null + def sdkRun2 = null + def sdkRun3 = null runInEdtAndWait { ourRun = clazz.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)) + withLibs.remove(sdkRun2) + withLibs.remove(sdkRun3) assert withLibs == [sdkRun] assert !(ourRun in withLibs) diff --git a/java/java-tests/testSrc/com/intellij/java/navigation/GotoImplementationHandlerTest.java b/java/java-tests/testSrc/com/intellij/java/navigation/GotoImplementationHandlerTest.java index 15abdc353942..e2736c6edc99 100644 --- a/java/java-tests/testSrc/com/intellij/java/navigation/GotoImplementationHandlerTest.java +++ b/java/java-tests/testSrc/com/intellij/java/navigation/GotoImplementationHandlerTest.java @@ -17,7 +17,6 @@ package com.intellij.java.navigation; import com.intellij.JavaTestUtil; import com.intellij.codeInsight.navigation.GotoTargetHandler; -import com.intellij.idea.Bombed; import com.intellij.openapi.roots.ModuleRootModificationUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiClass; @@ -31,7 +30,6 @@ import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase; import com.intellij.util.containers.ContainerUtil; import java.util.Arrays; -import java.util.Calendar; import java.util.List; public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCase { @@ -312,7 +310,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas assertSize(2, getTargets(file)); } - @Bombed(month = Calendar.SEPTEMBER, user = "Maxim.Mossienko", day = 15) public void testAnonymousAndLocalClassesInLibrary() { ModuleRootModificationUtil.addModuleLibrary( myModule, @@ -344,7 +341,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas assertContainsElements(names, "MyLocalClassImplementationInInner"); assertContainsElements(names, "MyInterfaceImplementation"); - /* // todo implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementation"); assertNull(implementation); implementation = myFixture.getJavaFacade().findClass("MyLocalClassImplementationInInner"); @@ -355,7 +351,6 @@ public class GotoImplementationHandlerTest extends JavaCodeInsightFixtureTestCas implementation = myFixture.getJavaFacade().findClass("2"); assertNull(implementation); - */ } private PsiElement[] getTargets(PsiFile file) { diff --git a/java/mockJDK-1.7/jre/lib/rt.jar b/java/mockJDK-1.7/jre/lib/rt.jar index a1df882cb2e7bc32a68ac5e55a4d5cc80df40bec..edcbe733a4f2cf5571604ab1507c1ee374768fc6 100644 GIT binary patch delta 788 zcmZ4T+oh?|wV{Qvg{g(Pg{6hHg{_6Xg`lrZ^@~Pn^dmGJUqH z0B8NPMVD;c*aUff=dU@k$>r~yBYR3}|1Vi{<%v+X8{4@DXTIz?GU?Ky5I43k-m?<~ z7R+e#?GRlSWu0?tXVYiz?n%LSjfxw7xiWVdoo-n3<%-DhCzH4n;6Ln8wt1H%ReW$p{?JUR|`+VvBTA34BwL_o}%nSI7H7KQ+C zWFMWK;w!lu=o3>$1_oU`K60%{PAw?O%+GU729bKnIf=!^rM{M2ha5y|@9Vzfin=|^ zWZ8ybL7go^B9pj}6mkeVDNSbGJFB&x{X@Vb6(^SI{PmUdx8IS!F5RG6C3Q>6s%4W8 z)1d(KZSy8uEql+hZl`s{oTJ4~#kFaFM7j++OiDO;y>~PUt4|VMwJY&<*JAxQH@BDl zynK#J_~Z|_A71viyeFd{S>CzrGoz7r^%<{=n=W`Bv(f8%b0iv3(wy$%|R z+TyDOPOZ=gVZEYuWdS4C_0aw6*k=9Avt`_Flr0cN9&`Wz delta 68 zcmZo_bY1e>rJ;qfg{g(Pg{6hHg{_6Xg`p62<@k diff --git a/java/mockJDK-1.7/src.zip b/java/mockJDK-1.7/src.zip index 7e744247f3280a36c3b7de0e363e5c68583b679f..dcc999666b63c2def84a2fbc60fd596bff90e1f5 100644 GIT binary patch delta 2673 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 e^S@L7o2h>