cc bazel handlers: use better interface checking

This is a far better approach for ensuring that bazel handlers implement
the BazelHandler interface, as it causes a compile error if they do not
implement the appropriate interface methods.

Test: Manually verified no change in ninja file
Change-Id: I63a4f8b57e3aedd4c0915c2fd2eb7029e9a993aa
diff --git a/cc/binary.go b/cc/binary.go
index 7b5591a..cfc54ff 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -563,11 +563,11 @@
 }
 
 type ccBinaryBazelHandler struct {
-	BazelHandler
-
 	module *Module
 }
 
+var _ BazelHandler = (*ccBinaryBazelHandler)(nil)
+
 func (handler *ccBinaryBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
 	bazelCtx := ctx.Config().BazelContext
 	bazelCtx.QueueBazelRequest(label, cquery.GetOutputFiles, android.GetConfigKey(ctx))
diff --git a/cc/library.go b/cc/library.go
index 5746529..9a30f53 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -642,11 +642,11 @@
 }
 
 type ccLibraryBazelHandler struct {
-	BazelHandler
-
 	module *Module
 }
 
+var _ BazelHandler = (*ccLibraryBazelHandler)(nil)
+
 // generateStaticBazelBuildActions constructs the StaticLibraryInfo Soong
 // provider from a Bazel shared library's CcInfo provider.
 func (handler *ccLibraryBazelHandler) generateStaticBazelBuildActions(ctx android.ModuleContext, label string, ccInfo cquery.CcInfo) {
diff --git a/cc/library_headers.go b/cc/library_headers.go
index 6fd9568..dd2f06c 100644
--- a/cc/library_headers.go
+++ b/cc/library_headers.go
@@ -49,12 +49,12 @@
 }
 
 type libraryHeaderBazelHandler struct {
-	BazelHandler
-
 	module  *Module
 	library *libraryDecorator
 }
 
+var _ BazelHandler = (*libraryHeaderBazelHandler)(nil)
+
 func (handler *libraryHeaderBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
 	bazelCtx := ctx.Config().BazelContext
 	bazelCtx.QueueBazelRequest(label, cquery.GetCcInfo, android.GetConfigKey(ctx))
diff --git a/cc/object.go b/cc/object.go
index a3be6b1..0b9cf6f 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -47,11 +47,11 @@
 }
 
 type objectBazelHandler struct {
-	BazelHandler
-
 	module *Module
 }
 
+var _ BazelHandler = (*objectBazelHandler)(nil)
+
 func (handler *objectBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
 	bazelCtx := ctx.Config().BazelContext
 	bazelCtx.QueueBazelRequest(label, cquery.GetOutputFiles, android.GetConfigKey(ctx))
diff --git a/cc/prebuilt.go b/cc/prebuilt.go
index e8c60ba..4120237 100644
--- a/cc/prebuilt.go
+++ b/cc/prebuilt.go
@@ -407,12 +407,12 @@
 }
 
 type prebuiltStaticLibraryBazelHandler struct {
-	BazelHandler
-
 	module  *Module
 	library *libraryDecorator
 }
 
+var _ BazelHandler = (*prebuiltStaticLibraryBazelHandler)(nil)
+
 func (h *prebuiltStaticLibraryBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
 	bazelCtx := ctx.Config().BazelContext
 	bazelCtx.QueueBazelRequest(label, cquery.GetCcInfo, android.GetConfigKey(ctx))
@@ -458,12 +458,12 @@
 }
 
 type prebuiltSharedLibraryBazelHandler struct {
-	BazelHandler
-
 	module  *Module
 	library *libraryDecorator
 }
 
+var _ BazelHandler = (*prebuiltSharedLibraryBazelHandler)(nil)
+
 func (h *prebuiltSharedLibraryBazelHandler) QueueBazelCall(ctx android.BaseModuleContext, label string) {
 	bazelCtx := ctx.Config().BazelContext
 	bazelCtx.QueueBazelRequest(label, cquery.GetCcInfo, android.GetConfigKey(ctx))