vulncheck: unexport moduleVulnerabilities methods

They are on an unexported type, and aren't used outside the package.

Also, remove two methods which are unused.

Change-Id: Ib40a94707b6d1caa0415aed9905023bffe7d0396
Reviewed-on: https://go-review.googlesource.com/c/vuln/+/400116
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Zvonimir Pavlinovic <zpavlinovic@google.com>
diff --git a/vulncheck/binary.go b/vulncheck/binary.go
index 2add537..0d1d331 100644
--- a/vulncheck/binary.go
+++ b/vulncheck/binary.go
@@ -31,7 +31,7 @@
 	if err != nil {
 		return nil, err
 	}
-	modVulns = modVulns.Filter(lookupEnv("GOOS", runtime.GOOS), lookupEnv("GOARCH", runtime.GOARCH))
+	modVulns = modVulns.filter(lookupEnv("GOOS", runtime.GOOS), lookupEnv("GOARCH", runtime.GOARCH))
 	result := &Result{}
 	for pkg, symbols := range packageSymbols {
 		if cfg.ImportsOnly {
@@ -47,7 +47,7 @@
 // addImportsOnlyVulns adds Vuln entries to result in imports only mode, i.e., for each vulnerable symbol
 // of pkg.
 func addImportsOnlyVulns(pkg string, symbols []string, result *Result, modVulns moduleVulnerabilities) {
-	for _, osv := range modVulns.VulnsForPackage(pkg) {
+	for _, osv := range modVulns.vulnsForPackage(pkg) {
 		for _, affected := range osv.Affected {
 			if affected.Package.Name != pkg {
 				continue
@@ -81,7 +81,7 @@
 // addSymbolVulns adds Vuln entries to result for every symbol of pkg in the binary that is vulnerable.
 func addSymbolVulns(pkg string, symbols []string, result *Result, modVulns moduleVulnerabilities) {
 	for _, symbol := range symbols {
-		for _, osv := range modVulns.VulnsForSymbol(pkg, symbol) {
+		for _, osv := range modVulns.vulnsForSymbol(pkg, symbol) {
 			for _, affected := range osv.Affected {
 				if affected.Package.Name != pkg {
 					continue
diff --git a/vulncheck/source.go b/vulncheck/source.go
index ed9698e..158f5ae 100644
--- a/vulncheck/source.go
+++ b/vulncheck/source.go
@@ -48,7 +48,7 @@
 	if err != nil {
 		return nil, err
 	}
-	modVulns = modVulns.Filter(lookupEnv("GOOS", runtime.GOOS), lookupEnv("GOARCH", runtime.GOARCH))
+	modVulns = modVulns.filter(lookupEnv("GOOS", runtime.GOOS), lookupEnv("GOARCH", runtime.GOARCH))
 
 	result := &Result{
 		Imports:  &ImportGraph{Packages: make(map[int]*PkgNode)},
@@ -132,7 +132,7 @@
 	}
 
 	// Check if pkg has known vulnerabilities.
-	vulns := modVulns.VulnsForPackage(pkg.PkgPath)
+	vulns := modVulns.vulnsForPackage(pkg.PkgPath)
 
 	// If pkg is not vulnerable nor it transitively leads
 	// to vulnerabilities, jump out.
@@ -338,7 +338,7 @@
 	}
 
 	// Check if f has known vulnerabilities.
-	vulns := modVulns.VulnsForSymbol(pkgPath(f), dbFuncName(f))
+	vulns := modVulns.vulnsForSymbol(pkgPath(f), dbFuncName(f))
 
 	var funNode *FuncNode
 	// If there are vulnerabilities for f, create node for f and
diff --git a/vulncheck/vulncheck.go b/vulncheck/vulncheck.go
index ea728a4..ab6ad8b 100644
--- a/vulncheck/vulncheck.go
+++ b/vulncheck/vulncheck.go
@@ -260,7 +260,7 @@
 	vulns []*osv.Entry
 }
 
-func (mv moduleVulnerabilities) Filter(os, arch string) moduleVulnerabilities {
+func (mv moduleVulnerabilities) filter(os, arch string) moduleVulnerabilities {
 	var filteredMod moduleVulnerabilities
 	for _, mod := range mv {
 		module := mod.mod
@@ -318,18 +318,11 @@
 	}
 	return matchesOS && matchesArch
 }
-func (mv moduleVulnerabilities) Num() int {
-	var num int
-	for _, m := range mv {
-		num += len(m.vulns)
-	}
-	return num
-}
 
-// VulnsForPackage returns the vulnerabilities for the module which is the most
+// vulnsForPackage returns the vulnerabilities for the module which is the most
 // specific prefix of importPath, or nil if there is no matching module with
 // vulnerabilities.
-func (mv moduleVulnerabilities) VulnsForPackage(importPath string) []*osv.Entry {
+func (mv moduleVulnerabilities) vulnsForPackage(importPath string) []*osv.Entry {
 	var mostSpecificMod *modVulns
 	for _, mod := range mv {
 		md := mod
@@ -360,9 +353,9 @@
 	return packageVulns
 }
 
-// VulnsForSymbol returns vulnerabilities for `symbol` in `mv.VulnsForPackage(importPath)`.
-func (mv moduleVulnerabilities) VulnsForSymbol(importPath, symbol string) []*osv.Entry {
-	vulns := mv.VulnsForPackage(importPath)
+// vulnsForSymbol returns vulnerabilities for `symbol` in `mv.VulnsForPackage(importPath)`.
+func (mv moduleVulnerabilities) vulnsForSymbol(importPath, symbol string) []*osv.Entry {
+	vulns := mv.vulnsForPackage(importPath)
 	if vulns == nil {
 		return nil
 	}
@@ -388,18 +381,3 @@
 	}
 	return symbolVulns
 }
-
-// Vulns returns vulnerabilities for all modules in `mv`.
-func (mv moduleVulnerabilities) Vulns() []*osv.Entry {
-	var vulns []*osv.Entry
-	seen := make(map[string]bool)
-	for _, mv := range mv {
-		for _, v := range mv.vulns {
-			if !seen[v.ID] {
-				vulns = append(vulns, v)
-				seen[v.ID] = true
-			}
-		}
-	}
-	return vulns
-}
diff --git a/vulncheck/vulncheck_test.go b/vulncheck/vulncheck_test.go
index 9faf00e..7c7874c 100644
--- a/vulncheck/vulncheck_test.go
+++ b/vulncheck/vulncheck_test.go
@@ -103,7 +103,7 @@
 		},
 	}
 
-	filtered := mv.Filter("linux", "amd64")
+	filtered := mv.filter("linux", "amd64")
 	if !reflect.DeepEqual(filtered, expected) {
 		t.Fatalf("Filter returned unexpected results, got:\n%s\nwant:\n%s", moduleVulnerabilitiesToString(filtered), moduleVulnerabilitiesToString(expected))
 	}
@@ -140,7 +140,7 @@
 		},
 	}
 
-	filtered := mv.VulnsForPackage("example.mod/a/b/c")
+	filtered := mv.vulnsForPackage("example.mod/a/b/c")
 	expected := []*osv.Entry{
 		{ID: "b", Affected: []osv.Affected{{Package: osv.Package{Name: "example.mod/a/b/c"}}}},
 	}
@@ -175,7 +175,7 @@
 		},
 	}
 
-	filtered := mv.VulnsForPackage("example.mod/a/b/c")
+	filtered := mv.vulnsForPackage("example.mod/a/b/c")
 	expected := []*osv.Entry{
 		{ID: "c", Affected: []osv.Affected{{Package: osv.Package{Name: "example.mod/b/c"}}}},
 	}
@@ -208,7 +208,7 @@
 		},
 	}
 
-	filtered := mv.VulnsForSymbol("example.mod/a/b/c", "a")
+	filtered := mv.vulnsForSymbol("example.mod/a/b/c", "a")
 	expected := []*osv.Entry{
 		{ID: "b", Affected: []osv.Affected{{Package: osv.Package{Name: "example.mod/a/b/c"}, EcosystemSpecific: osv.EcosystemSpecific{Symbols: []string{"a"}}}}},
 	}