From a94d7df2cbc86f0529cda4092aef610aaf26e257 Mon Sep 17 00:00:00 2001 From: Steven L Date: Sun, 17 Mar 2019 21:01:14 +0000 Subject: [PATCH] go/analysis/internal/checker: don't clobber fact when codeFact fails `codeFact` returns `nil, err` on errors, which results in error messages like: panic: internal error: encoding of nil fact failed in [analyzer] Though that and the stacktrace are often enough to identify the cause, the nil hides the actual source of the problem. Change-Id: Iddcdee386a5c64c6567d2727ebe7a77fe21927e9 GitHub-Last-Rev: 92163c2a5a631817319c992f7445f86d95130514 GitHub-Pull-Request: golang/tools#78 Reviewed-on: https://go-review.googlesource.com/c/tools/+/167997 Reviewed-by: Michael Matloob Run-TryBot: Michael Matloob --- go/analysis/internal/checker/checker.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/analysis/internal/checker/checker.go b/go/analysis/internal/checker/checker.go index f9a38baf..bd8474c9 100644 --- a/go/analysis/internal/checker/checker.go +++ b/go/analysis/internal/checker/checker.go @@ -545,11 +545,11 @@ func inheritFacts(act, dep *action) { // Optionally serialize/deserialize fact // to verify that it works across address spaces. if serialize { - var err error - fact, err = codeFact(fact) + encodedFact, err := codeFact(fact) if err != nil { log.Panicf("internal error: encoding of %T fact failed in %v", fact, act) } + fact = encodedFact } if false { @@ -567,11 +567,11 @@ func inheritFacts(act, dep *action) { // to verify that it works across address spaces // and is deterministic. if serialize { - var err error - fact, err = codeFact(fact) + encodedFact, err := codeFact(fact) if err != nil { log.Panicf("internal error: encoding of %T fact failed in %v", fact, act) } + fact = encodedFact } if false {