From eb789aa7ce5077c5b70da4ebd0bd36e2facf2107 Mon Sep 17 00:00:00 2001 From: Dominik Honnef Date: Sun, 7 Jun 2020 13:58:31 +0200 Subject: [PATCH] go/analysis/internal/checker: don't filter facts of parameters Change-Id: Iec34ff62159b77eda6732e16b710a5809cf7329b Reviewed-on: https://go-review.googlesource.com/c/tools/+/236526 Run-TryBot: Dominik Honnef Reviewed-by: Michael Matloob --- go/analysis/internal/checker/checker.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/go/analysis/internal/checker/checker.go b/go/analysis/internal/checker/checker.go index a26f801b58..5ccfb16374 100644 --- a/go/analysis/internal/checker/checker.go +++ b/go/analysis/internal/checker/checker.go @@ -800,8 +800,13 @@ func exportedFrom(obj types.Object, pkg *types.Package) bool { return obj.Exported() && obj.Pkg() == pkg || obj.Type().(*types.Signature).Recv() != nil case *types.Var: - return obj.Exported() && obj.Pkg() == pkg || - obj.IsField() + if obj.IsField() { + return true + } + // we can't filter more aggressively than this because we need + // to consider function parameters exported, but have no way + // of telling apart function parameters from local variables. + return obj.Pkg() == pkg case *types.TypeName, *types.Const: return true }