aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-04-13 16:51:42 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-13 16:52:58 -0700
commitf477e860e3d5b5cb12ae572edbeb0e683aa112d3 (patch)
tree6c3485793c56698acac633fa2126204cbf39a205 /src/java_tools
parentb9240df02a56bf4c6b52c1ab4424c248b49036bd (diff)
ignore made-up java/lang/Synthetic annotation that ASM sometimes inserts
RELNOTES: None. PiperOrigin-RevId: 192844304
Diffstat (limited to 'src/java_tools')
-rw-r--r--src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java3
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java5
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt5
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt5
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt5
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java12
6 files changed, 31 insertions, 4 deletions
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
index 64d2c7ff85..07925c38c1 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
@@ -288,6 +288,9 @@ public class DepsCheckerClassVisitor extends ClassVisitor {
@Override
public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
+ if ("Ljava/lang/Synthetic;".equals(desc)) {
+ return null; // ASM sometimes makes up this annotation, so we can ignore it (b/78024300)
+ }
checkDescriptor(desc);
return defaultAnnotationChecker;
}
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
index 089e3c2e6d..3e25134700 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
@@ -107,7 +107,10 @@ public class DepsCheckerClassVisitorTest extends AbstractClassCacheTest {
private ResultCollector getResultCollector(Path... classpath) throws IOException {
ImmutableList<String> clientClasses =
- ImmutableList.of(PACKAGE_NAME + "Client", PACKAGE_NAME + "Client$NestedAnnotation");
+ ImmutableList.of(
+ PACKAGE_NAME + "Client",
+ PACKAGE_NAME + "Client$NestedAnnotation",
+ PACKAGE_NAME + "Client$InnerClassWithSyntheticConstructorParam");
ResultCollector resultCollector = new ResultCollector();
try (ClassCache cache = new ClassCache(ImmutableList.copyOf(classpath), ImmutableList.of());
ZipFile zipFile = new ZipFile(clientJar.toFile())) {
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
index da7aebba5b..767c7dbfe2 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
@@ -27,6 +27,9 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$EnumTest
missing ancestor: java.lang.Enum
resolution failure path: java.lang.Enum
+Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ missing ancestor: java.lang.Object
+ resolution failure path: java.lang.Object
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library
missing ancestor: java.lang.Object
resolution failure path: java.lang.Object
@@ -106,5 +109,5 @@ Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Cli
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=27
+incomplete=28
missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
index dcc20af897..b6bf8dc11a 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
@@ -27,6 +27,9 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$EnumTest
missing ancestor: java.lang.Enum
resolution failure path: java.lang.Enum
+Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ missing ancestor: java.lang.Object
+ resolution failure path: java.lang.Object
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library
missing ancestor: java.lang.Object
resolution failure path: java.lang.Object
@@ -106,5 +109,5 @@ Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Cli
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=27
+incomplete=28
missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
index c7b0c4959f..ecf3822fb1 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
@@ -24,6 +24,9 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$EnumTest
missing ancestor: java.lang.Enum
resolution failure path: java.lang.Enum
+Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ missing ancestor: java.lang.Object
+ resolution failure path: java.lang.Object
Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library
missing ancestor: java.lang.Object
resolution failure path: java.lang.Object
@@ -103,5 +106,5 @@ Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Cli
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=27
+incomplete=28
missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java
index 724ca82dbe..db08176af1 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java
@@ -95,4 +95,16 @@ public class Client<@TypeAnnotation T> extends Library
B,
C
}
+
+ private class InnerClassWithSyntheticConstructorParam {
+ // This constructor has a synthetic parameter for the outer object (b/78024300). If there are
+ // parameter annotations then ASM generates "java/lang/Synthetic" annotations on the synthetic
+ // parameters, but java/lang/Synthetic doesn't exist!
+ InnerClassWithSyntheticConstructorParam(@ParameterAnnotation(position = 2) int p) {}
+
+ @Override
+ public String toString() {
+ return String.valueOf(field);
+ }
+ }
}