Convert JavaInfoProvider to *JavaInfo

Convert JavaInfoProvider to return a *JavaInfo instead of a JavaInfo.
This will reduce copying when reading the provider, and also allows
JavaInfo to recursively contain a depset of JavaInfos from
dependencies.

Bug: 308016794
Test: go test ./java/...
Flag: EXEMPT refactor
Change-Id: Ibf6d9b797f760ad1fe815d59839839fdfad91733
diff --git a/java/dex.go b/java/dex.go
index bb36871..d88e8f8 100644
--- a/java/dex.go
+++ b/java/dex.go
@@ -291,8 +291,9 @@
 	// See b/20667396
 	var proguardRaiseDeps classpath
 	ctx.VisitDirectDepsWithTag(proguardRaiseTag, func(m android.Module) {
-		dep, _ := android.OtherModuleProvider(ctx, m, JavaInfoProvider)
-		proguardRaiseDeps = append(proguardRaiseDeps, dep.RepackagedHeaderJars...)
+		if dep, ok := android.OtherModuleProvider(ctx, m, JavaInfoProvider); ok {
+			proguardRaiseDeps = append(proguardRaiseDeps, dep.RepackagedHeaderJars...)
+		}
 	})
 
 	r8Flags = append(r8Flags, proguardRaiseDeps.FormJavaClassPath("-libraryjars"))