aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/import_deps_checker/javatests/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar cnsun <cnsun@google.com>2018-05-30 11:41:14 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-30 11:44:18 -0700
commit5ad445b09283ee80dab22a4ba342cb4a72fedb0e (patch)
tree28d604a89178ad8c3aee886cca92eff2b117fde1 /src/java_tools/import_deps_checker/javatests/com/google/devtools/build
parent9c53da2386c60646fa96c84235e5a3cc9238030f (diff)
Resolve all super classes even if we have found missing super classes. This is
necessary. If we stop resolving the super classes, then the checker will complain that some methods are missign. In fact, these methods exist, but their class is not resolved due to the existing early-break strategy. RELNOTES: none PiperOrigin-RevId: 198594008
Diffstat (limited to 'src/java_tools/import_deps_checker/javatests/com/google/devtools/build')
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/AbstractClassCacheTest.java6
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ClassCacheTest.java29
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ImportDepsCheckerTest.java2
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/LazyClassEntryStateTest.java14
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResolutionFailureChainTest.java85
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java32
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt126
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt126
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt126
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt23
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt23
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt8
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt8
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt10
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt10
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD2
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Client.java4
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Library.java4
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryInterface.java8
-rw-r--r--src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/library_no_members/com/google/devtools/build/importdeps/testdata/Library.java6
20 files changed, 342 insertions, 310 deletions
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/AbstractClassCacheTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/AbstractClassCacheTest.java
index 2432c70b33..a2cb0bca1d 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/AbstractClassCacheTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/AbstractClassCacheTest.java
@@ -41,7 +41,7 @@ public abstract class AbstractClassCacheTest {
ImmutableList.<String>builder()
.add("Library")
.addAll(
- IntStream.range(1, 11)
+ IntStream.range(1, 12)
.mapToObj(i -> "Library$Class" + i)
.collect(ImmutableList.toImmutableList()))
.build()
@@ -83,7 +83,9 @@ public abstract class AbstractClassCacheTest {
PACKAGE_NAME + "LibraryInterface",
PACKAGE_NAME + "LibraryInterface$Func",
PACKAGE_NAME + "LibraryInterface$One",
- PACKAGE_NAME + "LibraryInterface$Two");
+ PACKAGE_NAME + "LibraryInterface$Two",
+ PACKAGE_NAME + "LibraryInterface$InterfaceFoo",
+ PACKAGE_NAME + "LibraryInterface$InterfaceBar");
static Path getPathFromSystemProperty(String propertyName) {
String path =
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ClassCacheTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ClassCacheTest.java
index 09fcf9eadd..bf4ca0a6ab 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ClassCacheTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ClassCacheTest.java
@@ -38,16 +38,13 @@ public class ClassCacheTest extends AbstractClassCacheTest {
try (ClassCache cache =
new ClassCache(
ImmutableList.of(bootclasspath),
- ImmutableList.of(libraryJar),
- ImmutableList.of(libraryJar),
+ ImmutableList.of(),
+ ImmutableList.of(libraryJar, libraryInterfaceJar),
ImmutableList.of())) {
assertCache(
cache,
libraryJarPositives,
- combine(
- libraryInterfacePositives,
- libraryAnnotationsJarPositives,
- libraryExceptionJarPositives));
+ combine(libraryAnnotationsJarPositives, libraryExceptionJarPositives));
}
}
@@ -80,8 +77,24 @@ public class ClassCacheTest extends AbstractClassCacheTest {
AbstractClassEntryState state = cache.getClassState(PACKAGE_NAME + "Client");
assertThat(state.isIncompleteState()).isTrue();
- ImmutableList<String> failureCause = state.asIncompleteState().getResolutionFailurePath();
- assertThat(failureCause).containsExactly(PACKAGE_NAME + "Library").inOrder();
+ ImmutableList<String> successPart =
+ state
+ .asIncompleteState()
+ .resolutionFailureChain()
+ .getMissingClassesWithSubclasses()
+ .values()
+ .stream()
+ .distinct()
+ .sorted()
+ .map(ClassInfo::internalName)
+ .collect(ImmutableList.toImmutableList());
+ assertThat(successPart).containsExactly(PACKAGE_NAME + "Client").inOrder();
+ assertThat(state.asIncompleteState().missingAncestors())
+ .containsExactly(
+ PACKAGE_NAME + "Library",
+ PACKAGE_NAME + "LibraryInterface",
+ PACKAGE_NAME + "LibraryInterface$One",
+ PACKAGE_NAME + "LibraryInterface$Two");
}
assertThat(cache.getClassState(PACKAGE_NAME + "Client").isIncompleteState()).isTrue();
assertThat(cache.getClassState(PACKAGE_NAME + "Client$NestedAnnotation"))
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ImportDepsCheckerTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ImportDepsCheckerTest.java
index be46cb3ffb..0f5a341a25 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ImportDepsCheckerTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ImportDepsCheckerTest.java
@@ -57,7 +57,7 @@ public class ImportDepsCheckerTest extends AbstractClassCacheTest {
ImmutableList.of(bootclasspath),
ImmutableList.of(libraryAnnotationsJar),
ImmutableList.of(libraryJar),
- true,
+ false,
ImmutableList.of());
testJdepsProto(
ImmutableList.of(bootclasspath),
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/LazyClassEntryStateTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/LazyClassEntryStateTest.java
index f042c34600..4baaa20687 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/LazyClassEntryStateTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/LazyClassEntryStateTest.java
@@ -59,9 +59,13 @@ public class LazyClassEntryStateTest {
public void testIncompleteState() {
assertThrows(
IllegalArgumentException.class,
- () -> IncompleteState.create(LIST_CLASS_INFO, ImmutableList.of()));
+ () ->
+ IncompleteState.create(
+ LIST_CLASS_INFO,
+ ResolutionFailureChain.createWithParent(LIST_CLASS_INFO, ImmutableList.of())));
IncompleteState state =
- IncompleteState.create(LIST_CLASS_INFO, ImmutableList.of("java/lang/Object"));
+ IncompleteState.create(
+ LIST_CLASS_INFO, ResolutionFailureChain.createMissingClass("java/lang/Object"));
assertThat(state.isExistingState()).isFalse();
assertThat(state.isIncompleteState()).isTrue();
@@ -76,9 +80,9 @@ public class LazyClassEntryStateTest {
assertThat(classInfo.declaredMembers()).hasSize(1);
assertThat(classInfo.declaredMembers()).containsExactly(MemberInfo.create("hashCode", "()I"));
- ImmutableList<String> failurePath = state.getResolutionFailurePath();
- assertThat(failurePath).hasSize(1);
- assertThat(failurePath).containsExactly("java/lang/Object");
+ assertThat(state.resolutionFailureChain().getMissingClassesWithSubclasses()).isEmpty();
+ assertThat(state.missingAncestors()).hasSize(1);
+ assertThat(state.missingAncestors()).containsExactly("java/lang/Object");
}
@Test
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResolutionFailureChainTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResolutionFailureChainTest.java
new file mode 100644
index 0000000000..362a435cb5
--- /dev/null
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResolutionFailureChainTest.java
@@ -0,0 +1,85 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.importdeps;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import java.nio.file.Paths;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Test for {@link ResolutionFailureChain} */
+@RunWith(JUnit4.class)
+public class ResolutionFailureChainTest {
+
+ private final ClassInfo charSequenceClass =
+ ClassInfo.create(
+ "java/lang/CharSequence",
+ Paths.get("string.jar"),
+ false,
+ ImmutableList.of(),
+ ImmutableSet.of());
+ private final ResolutionFailureChain objectMissingChain =
+ ResolutionFailureChain.createMissingClass("java/lang/Object");
+ private final ResolutionFailureChain charSequenceFailureChain =
+ ResolutionFailureChain.createWithParent(
+ charSequenceClass, ImmutableList.of(objectMissingChain));
+
+ @Test
+ public void testArgumentCheck() {
+ Assert.assertThrows(
+ IllegalArgumentException.class,
+ () -> ResolutionFailureChain.createWithParent(charSequenceClass, ImmutableList.of()));
+ }
+
+ @Test
+ public void testMissingClassChain() {
+ assertThat(objectMissingChain.missingClasses()).containsExactly("java/lang/Object");
+ assertThat(objectMissingChain.getMissingClassesWithSubclasses()).isEmpty();
+ assertThat(objectMissingChain.parentChains()).isEmpty();
+ assertThat(objectMissingChain.resolutionStartClass()).isNull();
+ }
+
+ @Test
+ public void testChainWithOneHead() {
+ assertThat(charSequenceFailureChain.missingClasses()).containsExactly("java/lang/Object");
+ assertThat(charSequenceFailureChain.resolutionStartClass()).isEqualTo(charSequenceClass);
+ assertThat(charSequenceFailureChain.getMissingClassesWithSubclasses().values())
+ .containsExactly(charSequenceClass);
+ assertThat(charSequenceFailureChain.parentChains()).containsExactly(objectMissingChain);
+ }
+
+ @Test
+ public void testChainWithTwoHeads() {
+ ClassInfo stringClass =
+ ClassInfo.create(
+ "java/lang/String",
+ Paths.get("string.jar"),
+ false,
+ ImmutableList.of(),
+ ImmutableSet.of());
+ ResolutionFailureChain chain =
+ ResolutionFailureChain.createWithParent(
+ stringClass, ImmutableList.of(objectMissingChain, charSequenceFailureChain));
+ assertThat(chain.missingClasses()).containsExactly("java/lang/Object");
+ assertThat(chain.parentChains()).containsExactly(objectMissingChain, charSequenceFailureChain);
+ assertThat(chain.getMissingClassesWithSubclasses().values())
+ .containsExactly(stringClass, charSequenceClass);
+ assertThat(chain.resolutionStartClass()).isEqualTo(stringClass);
+ }
+}
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
index db76c26d7b..6256c77ec1 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
@@ -24,7 +24,6 @@ import com.google.devtools.build.importdeps.ResultCollector.MissingMember;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -33,12 +32,21 @@ import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class ResultCollectorTest {
- private ResultCollector collector;
-
- @Before
- public void setup() throws IOException {
- collector = new ResultCollector();
- }
+ private final ClassInfo objectClass =
+ ClassInfo.create(
+ "java/lang/Object",
+ Paths.get("bootclasspath.jar"),
+ false,
+ ImmutableList.of(),
+ ImmutableSet.of());
+ private final ClassInfo stringClass =
+ ClassInfo.create(
+ "java/lang/String",
+ Paths.get("string.jar"),
+ false,
+ ImmutableList.of(objectClass),
+ ImmutableSet.of());
+ private ResultCollector collector = new ResultCollector();
@Test
public void testEmptyCollector() throws IOException {
@@ -67,14 +75,16 @@ public class ResultCollectorTest {
collector.addMissingOrIncompleteClass(
"java/lang/String",
IncompleteState.create(
- ClassInfo.create(
- "java/lang/String", Paths.get("a"), true, ImmutableList.of(), ImmutableSet.of()),
- ImmutableList.of("java/lang/Object")));
+ stringClass, ResolutionFailureChain.createMissingClass("java/lang/Object")));
assertThat(collector.getSortedIncompleteClasses()).hasSize(1);
assertThat(collector.getSortedIncompleteClasses().get(0).classInfo().get())
.isEqualTo(
ClassInfo.create(
- "java/lang/String", Paths.get("a"), true, ImmutableList.of(), ImmutableSet.of()));
+ "java/lang/String",
+ Paths.get("string.jar"),
+ false,
+ ImmutableList.of(objectClass),
+ ImmutableSet.of()));
assertThat(collector.isEmpty()).isFalse();
}
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 a037fa0556..e7470b5514 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
@@ -21,93 +21,49 @@ Missing java.lang.invoke.MethodHandle
Missing java.lang.invoke.MethodHandles$Lookup
Missing java.lang.invoke.MethodType
Missing java.util.Objects
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library -> java.lang.Object
-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
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class1
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class10
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library$Class9 -> java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class2
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class3
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class4
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class5
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class6
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class7
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class8
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class9
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
- missing ancestor: java.lang.Enum
- resolution failure path: java.lang.Enum
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryException
- missing ancestor: java.lang.Exception
- resolution failure path: java.lang.Exception
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$One
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
+Indirectly missing class java.lang.Enum. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$EnumTest
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+Indirectly missing class java.lang.Exception. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryException
+Indirectly missing class java.lang.Object. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ com.google.devtools.build.importdeps.testdata.Library
+ com.google.devtools.build.importdeps.testdata.Library$Class1
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+ com.google.devtools.build.importdeps.testdata.Library$Class2
+ com.google.devtools.build.importdeps.testdata.Library$Class3
+ com.google.devtools.build.importdeps.testdata.Library$Class4
+ com.google.devtools.build.importdeps.testdata.Library$Class5
+ com.google.devtools.build.importdeps.testdata.Library$Class6
+ com.google.devtools.build.importdeps.testdata.Library$Class7
+ com.google.devtools.build.importdeps.testdata.Library$Class8
+ com.google.devtools.build.importdeps.testdata.Library$Class9
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryInterface
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$One
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+Indirectly missing class java.lang.annotation.Annotation. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=28
+incomplete=29
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 2bb0b97f86..a5a3f24a15 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
@@ -21,93 +21,49 @@ Missing java.lang.invoke.MethodHandle
Missing java.lang.invoke.MethodHandles$Lookup
Missing java.lang.invoke.MethodType
Missing java.util.Objects
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library -> java.lang.Object
-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
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class1
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class10
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library$Class9 -> java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class2
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class3
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class4
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class5
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class6
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class7
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class8
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class9
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
- missing ancestor: java.lang.Enum
- resolution failure path: java.lang.Enum
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryException
- missing ancestor: java.lang.Exception
- resolution failure path: java.lang.Exception
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$One
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
+Indirectly missing class java.lang.Enum. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$EnumTest
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+Indirectly missing class java.lang.Exception. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryException
+Indirectly missing class java.lang.Object. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ com.google.devtools.build.importdeps.testdata.Library
+ com.google.devtools.build.importdeps.testdata.Library$Class1
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+ com.google.devtools.build.importdeps.testdata.Library$Class2
+ com.google.devtools.build.importdeps.testdata.Library$Class3
+ com.google.devtools.build.importdeps.testdata.Library$Class4
+ com.google.devtools.build.importdeps.testdata.Library$Class5
+ com.google.devtools.build.importdeps.testdata.Library$Class6
+ com.google.devtools.build.importdeps.testdata.Library$Class7
+ com.google.devtools.build.importdeps.testdata.Library$Class8
+ com.google.devtools.build.importdeps.testdata.Library$Class9
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryInterface
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$One
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+Indirectly missing class java.lang.annotation.Annotation. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=28
+incomplete=29
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 f68fee99ce..27d55cc9d2 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
@@ -18,93 +18,49 @@ Missing java.lang.invoke.MethodHandle
Missing java.lang.invoke.MethodHandles$Lookup
Missing java.lang.invoke.MethodType
Missing java.util.Objects
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library -> java.lang.Object
-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
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class1
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class10
- missing ancestor: java.lang.Object
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library$Class9 -> java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class2
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class3
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class4
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class5
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class6
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class7
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class8
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library$Class9
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
- missing ancestor: java.lang.Enum
- resolution failure path: java.lang.Enum
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryException
- missing ancestor: java.lang.Exception
- resolution failure path: java.lang.Exception
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$One
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
+Indirectly missing class java.lang.Enum. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$EnumTest
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+Indirectly missing class java.lang.Exception. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryException
+Indirectly missing class java.lang.Object. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
+ com.google.devtools.build.importdeps.testdata.Library
+ com.google.devtools.build.importdeps.testdata.Library$Class1
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+ com.google.devtools.build.importdeps.testdata.Library$Class2
+ com.google.devtools.build.importdeps.testdata.Library$Class3
+ com.google.devtools.build.importdeps.testdata.Library$Class4
+ com.google.devtools.build.importdeps.testdata.Library$Class5
+ com.google.devtools.build.importdeps.testdata.Library$Class6
+ com.google.devtools.build.importdeps.testdata.Library$Class7
+ com.google.devtools.build.importdeps.testdata.Library$Class8
+ com.google.devtools.build.importdeps.testdata.Library$Class9
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryInterface
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$One
+ com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+Indirectly missing class java.lang.annotation.Annotation. Referenced by:
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
+ com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
===Total===
missing=20
-incomplete=28
+incomplete=29
missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
index 9dfb028a60..3983296240 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
@@ -3,12 +3,23 @@ ERROR: The dependencies for the following 1 jar(s) are not complete.
The details are listed below:
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
+Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
+Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: com.google.devtools.build.importdeps.testdata.LibraryInterface
- resolution failure path: com.google.devtools.build.importdeps.testdata.LibraryInterface
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
+Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
===Total===
-missing=4
-incomplete=1
-missing_members=0
+missing=6
+incomplete=2
+missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
index 98e939e08e..e8a282b575 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
@@ -1,11 +1,22 @@
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
+Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
+Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: com.google.devtools.build.importdeps.testdata.LibraryInterface
- resolution failure path: com.google.devtools.build.importdeps.testdata.LibraryInterface
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Library$Class11
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
+Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
+Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
===Total===
-missing=4
-incomplete=1
-missing_members=0
+missing=6
+incomplete=2
+missing_members=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
index 4c0f4a9337..0db51a99a7 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
@@ -4,6 +4,7 @@ The details are listed below:
Missing com.google.devtools.build.importdeps.testdata.Library
Missing com.google.devtools.build.importdeps.testdata.Library$Class1
Missing com.google.devtools.build.importdeps.testdata.Library$Class10
+Missing com.google.devtools.build.importdeps.testdata.Library$Class11
Missing com.google.devtools.build.importdeps.testdata.Library$Class2
Missing com.google.devtools.build.importdeps.testdata.Library$Class3
Missing com.google.devtools.build.importdeps.testdata.Library$Class4
@@ -12,10 +13,9 @@ Missing com.google.devtools.build.importdeps.testdata.Library$Class6
Missing com.google.devtools.build.importdeps.testdata.Library$Class7
Missing com.google.devtools.build.importdeps.testdata.Library$Class8
Missing com.google.devtools.build.importdeps.testdata.Library$Class9
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: com.google.devtools.build.importdeps.testdata.Library
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library
+Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
===Total===
-missing=11
+missing=12
incomplete=1
missing_members=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
index 79399786a1..fa5e95c6f0 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
@@ -1,6 +1,7 @@
Missing com.google.devtools.build.importdeps.testdata.Library
Missing com.google.devtools.build.importdeps.testdata.Library$Class1
Missing com.google.devtools.build.importdeps.testdata.Library$Class10
+Missing com.google.devtools.build.importdeps.testdata.Library$Class11
Missing com.google.devtools.build.importdeps.testdata.Library$Class2
Missing com.google.devtools.build.importdeps.testdata.Library$Class3
Missing com.google.devtools.build.importdeps.testdata.Library$Class4
@@ -9,10 +10,9 @@ Missing com.google.devtools.build.importdeps.testdata.Library$Class6
Missing com.google.devtools.build.importdeps.testdata.Library$Class7
Missing com.google.devtools.build.importdeps.testdata.Library$Class8
Missing com.google.devtools.build.importdeps.testdata.Library$Class9
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client
- missing ancestor: com.google.devtools.build.importdeps.testdata.Library
- resolution failure path: com.google.devtools.build.importdeps.testdata.Library
+Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
+ com.google.devtools.build.importdeps.testdata.Client
===Total===
-missing=11
+missing=12
incomplete=1
missing_members=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
index 3cc4b3d5ae..fb49176d2b 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
@@ -2,10 +2,12 @@ ERROR: The dependencies for the following 1 jar(s) are not complete.
1.third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/libOneAnnotationValue.jar
The details are listed below:
Missing java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.StringAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
+Missing java.lang.annotation.Annotation
+Indirectly missing class java.lang.Object. Referenced by:
+ com.google.devtools.build.importdeps.testdata.StringAnnotation
+Indirectly missing class java.lang.annotation.Annotation. Referenced by:
+ com.google.devtools.build.importdeps.testdata.StringAnnotation
===Total===
-missing=1
+missing=2
incomplete=1
missing_members=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
index b0e898dc35..4699e35478 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
@@ -1,8 +1,10 @@
Missing java.lang.Object
-Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.StringAnnotation
- missing ancestor: java.lang.Object
- resolution failure path: java.lang.Object
+Missing java.lang.annotation.Annotation
+Indirectly missing class java.lang.Object. Referenced by:
+ com.google.devtools.build.importdeps.testdata.StringAnnotation
+Indirectly missing class java.lang.annotation.Annotation. Referenced by:
+ com.google.devtools.build.importdeps.testdata.StringAnnotation
===Total===
-missing=1
+missing=2
incomplete=1
missing_members=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD
index 805bb7d6c4..bd8614d3a6 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD
@@ -28,11 +28,13 @@ java_library(
java_library(
name = "testdata_lib_Library",
srcs = ["Library.java"],
+ deps = [":testdata_lib_LibraryInterface"],
)
java_library(
name = "testdata_lib_Library_no_members",
srcs = ["library_no_members/com/google/devtools/build/importdeps/testdata/Library.java"],
+ deps = [":testdata_lib_LibraryInterface"],
)
java_library(
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 419ae82332..2f9d5b17d0 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
@@ -68,6 +68,10 @@ public class Client<@TypeAnnotation T> extends Library
System.out.println(array.clone().length);
Integer b = Integer.valueOf(0);
System.out.println(b);
+
+ Class11 eleven = new Class11();
+ eleven.foo();
+ eleven.bar();
}
public void testEnums() {
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Library.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Library.java
index 31049ba2d5..0d29fb76dc 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Library.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/Library.java
@@ -57,4 +57,8 @@ public class Library {
/** A library class for testing. */
public static class Class10 extends Class9 {}
+
+ /** A library class for testing. */
+ public static class Class11
+ implements LibraryInterface.InterfaceFoo, LibraryInterface.InterfaceBar {}
}
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryInterface.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryInterface.java
index c4e6e07459..b85172cab6 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryInterface.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryInterface.java
@@ -34,4 +34,12 @@ public interface LibraryInterface {
interface Two {
void callTwo();
}
+
+ interface InterfaceFoo {
+ default void foo() {}
+ }
+
+ interface InterfaceBar {
+ default void bar() {}
+ }
}
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/library_no_members/com/google/devtools/build/importdeps/testdata/Library.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/library_no_members/com/google/devtools/build/importdeps/testdata/Library.java
index 991baa0cd7..624ce06dac 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/library_no_members/com/google/devtools/build/importdeps/testdata/Library.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/library_no_members/com/google/devtools/build/importdeps/testdata/Library.java
@@ -13,6 +13,9 @@
// limitations under the License.
package com.google.devtools.build.importdeps.testdata;
+import com.google.devtools.build.importdeps.testdata.LibraryInterface.InterfaceBar;
+import com.google.devtools.build.importdeps.testdata.LibraryInterface.InterfaceFoo;
+
/**
* A library class for testing. This library class is very similar to {@link Library}, but it does
* not have any members (fields or methods).
@@ -48,4 +51,7 @@ public class Library {
/** A library class for testing. */
public static class Class10 extends Class9 {}
+
+ /** A library class for testing. */
+ public static class Class11 implements InterfaceBar, InterfaceFoo {}
}