java: injected methods excluded from enum stub

This commit is contained in:
Roman Shevchenko
2014-05-27 12:04:16 +04:00
parent 06f261c307
commit 301b5e71cf
7 changed files with 7 additions and 37 deletions
@@ -40,7 +40,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 = 10;
public static final int STUB_VERSION = 11;
@Override
public boolean acceptsFile(@NotNull VirtualFile file) {
@@ -408,6 +408,12 @@ public class StubBuildingVisitor<T> extends ClassVisitor {
if (SYNTHETIC_CLASS_INIT_METHOD.equals(name)) return null;
// skip semi-synthetic enum methods
if (myResult.isEnum()) {
if ("values".equals(name) && desc.startsWith("()")) return null;
if ("valueOf".equals(name) && desc.startsWith("(Ljava/lang/String;)")) return null;
}
boolean isDeprecated = (access & Opcodes.ACC_DEPRECATED) != 0;
boolean isConstructor = SYNTHETIC_INIT_METHOD.equals(name);
boolean isVarargs = (access & Opcodes.ACC_VARARGS) != 0;
@@ -7,9 +7,5 @@ package pkg;
enum EmptyEnum {
;
public static pkg.EmptyEnum[] values() { /* compiled code */ }
public static pkg.EmptyEnum valueOf(java.lang.String s) { /* compiled code */ }
private EmptyEnum() { /* compiled code */ }
}
@@ -10,9 +10,5 @@ public enum EnumWithFields {
private boolean f1;
static boolean f2;
public static pkg.EnumWithFields[] values() { /* compiled code */ }
public static pkg.EnumWithFields valueOf(java.lang.String s) { /* compiled code */ }
private EnumWithFields() { /* compiled code */ }
}
@@ -7,9 +7,5 @@ package pkg;
public enum SimpleEnum {
E1, E2;
public static pkg.SimpleEnum[] values() { /* compiled code */ }
public static pkg.SimpleEnum valueOf(java.lang.String s) { /* compiled code */ }
private SimpleEnum() { /* compiled code */ }
}
@@ -10,18 +10,6 @@ PsiJavaFileStub []
PsiModifierListStub[mask=25]
PsiFieldStub[enumconst C:AnnotatedEnumConstructor]
PsiModifierListStub[mask=25]
PsiMethodStub[values:AnnotatedEnumConstructor[]]
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[valueOf:AnnotatedEnumConstructor]
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[name:java.lang.String]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[cons varargs AnnotatedEnumConstructor:void]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub
@@ -18,18 +18,6 @@ PsiJavaFileStub [java.util.concurrent]
PsiModifierListStub[mask=26]
PsiFieldStub[overflows:long[]]
PsiModifierListStub[mask=26]
PsiMethodStub[values:java.util.concurrent.TimeUnit[]]
PsiModifierListStub[mask=25]
PsiTypeParameterListStub
PsiParameterListStub
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[valueOf:java.util.concurrent.TimeUnit]
PsiModifierListStub[mask=9]
PsiTypeParameterListStub
PsiParameterListStub
PsiParameterStub[p1:java.lang.String]
PsiModifierListStub[mask=0]
PsiRefListStub[THROWS_LIST:]
PsiMethodStub[cons TimeUnit:void]
PsiModifierListStub[mask=2]
PsiTypeParameterListStub