Skip to content

Commit

Permalink
Fix error reporting in MatchesIncludeTags
Browse files Browse the repository at this point in the history
ctx.ModuleErrorf for the main blueprint config object doesn't
report an error, it just returns it.

If go had something like C++'s `[[nodiscard]]` or rust's `#[must_use]`
that would be useful here, but the issue has been open since 2017:
golang/go#20803

Test: Presubmits
Change-Id: I72709e6c5466d55f5c0f3fe51a25c29df0826271
  • Loading branch information
Colecf committed Mar 21, 2024
1 parent d2f1141 commit 894b318
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions context.go
Expand Up @@ -1068,8 +1068,12 @@ func shouldVisitFile(c *Context, file *parser.File) shouldVisitFileInfo {
}

if blueprintPackageIncludes != nil {
packageMatches := blueprintPackageIncludes.MatchesIncludeTags(c)
if !packageMatches {
packageMatches, err := blueprintPackageIncludes.matchesIncludeTags(c)
if err != nil {
return shouldVisitFileInfo{
errs: []error{err},
}
} else if !packageMatches {
return shouldVisitFileInfo{
shouldVisitFile: false,
skippedModules: skippedModules,
Expand Down Expand Up @@ -5265,14 +5269,14 @@ func (pi *PackageIncludes) MatchAll() []string {
}

// Returns true if all requested include tags are set in the Context object
func (pi *PackageIncludes) MatchesIncludeTags(ctx *Context) bool {
func (pi *PackageIncludes) matchesIncludeTags(ctx *Context) (bool, error) {
if len(pi.MatchAll()) == 0 {
ctx.ModuleErrorf(pi, "Match_all must be a non-empty list")
return false, ctx.ModuleErrorf(pi, "Match_all must be a non-empty list")
}
for _, includeTag := range pi.MatchAll() {
if !ctx.ContainsIncludeTag(includeTag) {
return false
return false, nil
}
}
return true
return true, nil
}

0 comments on commit 894b318

Please sign in to comment.