Apex_available check failure reveals dependency

When the check for apex_available has failed, the build system now shows
the module that brought the unavailable module into the APEX.

Bug: 151051671
Test: m
Change-Id: Id1a3fda67fe56fdc2dc90ec800d10689415de4d6
diff --git a/apex/apex.go b/apex/apex.go
index 506a89e..ee6f93a 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1982,7 +1982,7 @@
 		if externalDep || to.AvailableFor(apexName) || whitelistedApexAvailable(apexName, to) {
 			return
 		}
-		ctx.ModuleErrorf("requires %q that is not available for the APEX.", to.Name())
+		ctx.ModuleErrorf("%q requires %q that is not available for the APEX.", from.Name(), to.Name())
 	})
 }
 
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 36e7ea7..6a9533e 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -3011,7 +3011,7 @@
 
 func TestApexPropertiesShouldBeDefaultable(t *testing.T) {
 	// libfoo's apex_available comes from cc_defaults
-	testApexError(t, `"myapex" .*: requires "libfoo" that is not available for the APEX`, `
+	testApexError(t, `"myapex" .*: "myapex" requires "libfoo" that is not available for the APEX`, `
 	apex {
 		name: "myapex",
 		key: "myapex.key",