Modify Bazel exporter's findRule to only return Rule ptr.

Have findRule() only return a build.Rule pointer and not an error.
If no rule is found nil will be returned. The caller will determine
whether this is an error.

Bug: skia:563656
Change-Id: I5ff0bf4465ff12273716224fbb899a334b98c997
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/566879
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Mumford <cmumford@google.com>
diff --git a/bazel/exporter/bazel_util.go b/bazel/exporter/bazel_util.go
index 5d936fc..3090ba7 100644
--- a/bazel/exporter/bazel_util.go
+++ b/bazel/exporter/bazel_util.go
@@ -36,15 +36,15 @@
 }
 
 // Given a Bazel rule name find that rule from within the
-// query results.
-func findRule(qr *analysis_v2.CqueryResult, name string) (*build.Rule, error) {
+// query results. Returns nil if the given rule is not present.
+func findRule(qr *analysis_v2.CqueryResult, name string) *build.Rule {
 	for _, result := range qr.GetResults() {
 		r := result.GetTarget().GetRule()
 		if r.GetName() == name {
-			return r, nil
+			return r
 		}
 	}
-	return nil, skerr.Fmt(`cannot find rule %q`, name)
+	return nil
 }
 
 // Parse a rule into its constituent parts.
diff --git a/bazel/exporter/bazel_util_test.go b/bazel/exporter/bazel_util_test.go
index 26af56f..384a286 100644
--- a/bazel/exporter/bazel_util_test.go
+++ b/bazel/exporter/bazel_util_test.go
@@ -136,28 +136,23 @@
 	err := prototext.Unmarshal([]byte(textProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/apps:hello", r.GetName())
 }
 
-func TestFindRule_RuleDoesntExists_ReturnsError(t *testing.T) {
+func TestFindRule_RuleDoesntExists_ReturnsNil(t *testing.T) {
 	qr := analysis_v2.CqueryResult{}
 	err := prototext.Unmarshal([]byte(textProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//path/to:nonexistent_rule")
-	assert.Error(t, err)
-	assert.Nil(t, r)
+	assert.Nil(t, findRule(&qr, "//path/to:nonexistent_rule"))
 }
 
-func TestFindRule_InvalidRule_ReturnsError(t *testing.T) {
+func TestFindRule_InvalidRule_ReturnsNil(t *testing.T) {
 	qr := analysis_v2.CqueryResult{}
 	err := prototext.Unmarshal([]byte(textProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "")
-	assert.Error(t, err)
-	assert.Nil(t, r)
+	assert.Nil(t, findRule(&qr, ""))
 }
diff --git a/bazel/exporter/cmake_exporter.go b/bazel/exporter/cmake_exporter.go
index 2c3cf84..dd24212 100644
--- a/bazel/exporter/cmake_exporter.go
+++ b/bazel/exporter/cmake_exporter.go
@@ -108,9 +108,9 @@
 		}
 	}
 	for _, d := range deps {
-		dr, err := findRule(qr, d)
-		if err != nil {
-			return nil, skerr.Wrap(err)
+		dr := findRule(qr, d)
+		if dr == nil {
+			return nil, skerr.Fmt("cannot find rule %s", d)
 		}
 		if isExternalRule(dr.GetName()) {
 			continue
@@ -136,9 +136,9 @@
 		return nil, skerr.Wrap(err)
 	}
 	for _, d := range deps {
-		dr, err := findRule(qr, d)
-		if err != nil {
-			return nil, skerr.Wrap(err)
+		dr := findRule(qr, d)
+		if dr == nil {
+			return nil, skerr.Fmt("cannot find rule %s", d)
 		}
 		defs, err := getRuleDefines(dr, qr)
 		if err != nil {
diff --git a/bazel/exporter/cmake_exporter_test.go b/bazel/exporter/cmake_exporter_test.go
index 4942bf3..9f375ca 100644
--- a/bazel/exporter/cmake_exporter_test.go
+++ b/bazel/exporter/cmake_exporter_test.go
@@ -254,8 +254,7 @@
 	err := prototext.Unmarshal([]byte(textProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 
 	copts, err := getRuleCopts(r)
diff --git a/bazel/exporter/cmake_rule_test.go b/bazel/exporter/cmake_rule_test.go
index c90d6931..085b89a 100644
--- a/bazel/exporter/cmake_rule_test.go
+++ b/bazel/exporter/cmake_rule_test.go
@@ -152,8 +152,7 @@
 	err := prototext.Unmarshal([]byte(ruleTestTextProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/apps:hello", r.GetName())
 
@@ -166,8 +165,7 @@
 	err := prototext.Unmarshal([]byte(ruleTestTextProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/libs:sum")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/libs:sum")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/libs:sum", r.GetName())
 
@@ -180,8 +178,7 @@
 	err := prototext.Unmarshal([]byte(ruleTestTextProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/apps:hello", r.GetName())
 
@@ -194,8 +191,7 @@
 	err := prototext.Unmarshal([]byte(ruleTestTextProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/apps:hello", r.GetName())
 
@@ -209,8 +205,7 @@
 	err := prototext.Unmarshal([]byte(ruleTestTextProto), &qr)
 	require.NoError(t, err)
 
-	r, err := findRule(&qr, "//src/apps:hello")
-	require.NoError(t, err)
+	r := findRule(&qr, "//src/apps:hello")
 	require.NotNil(t, r)
 	assert.Equal(t, "//src/apps:hello", r.GetName())