From fe494af887f9f83617540077fa89d14c92f0decd Mon Sep 17 00:00:00 2001
From: Aleksandr Razumov <a.razumov@corp.mail.ru>
Date: Mon, 30 Sep 2019 16:04:06 +0300
Subject: [PATCH] govet: skip internal analyzers (#763)

Some analyzers are not intended for direct usage and are
just build blocks for other analyzers.
Seems like we can distinguish them by ResultType nillness.
---
 pkg/golinters/govet.go | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/pkg/golinters/govet.go b/pkg/golinters/govet.go
index a24af46d..ecb8c8a2 100644
--- a/pkg/golinters/govet.go
+++ b/pkg/golinters/govet.go
@@ -43,7 +43,8 @@ import (
 )
 
 func getAllAnalyzers() []*analysis.Analyzer {
-	return []*analysis.Analyzer{
+	var analyzers []*analysis.Analyzer
+	for _, a := range []*analysis.Analyzer{
 		asmdecl.Analyzer,
 		assign.Analyzer,
 		atomic.Analyzer,
@@ -76,7 +77,14 @@ func getAllAnalyzers() []*analysis.Analyzer {
 		unreachable.Analyzer,
 		unsafeptr.Analyzer,
 		unusedresult.Analyzer,
+	} {
+		if a.ResultType != nil {
+			// Skipping internal analyzers.
+			continue
+		}
+		analyzers = append(analyzers, a)
 	}
+	return analyzers
 }
 
 func getDefaultAnalyzers() []*analysis.Analyzer {