aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
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);
+ }
+ }
}