From 6e49c592de91fd7ea7d47aa50360a1c4f49172f8 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Mon, 14 Feb 2022 17:20:48 -0800 Subject: [PATCH] go/types: return Universe for (*Package)(nil).Scope() Port of go.dev/cl/325469. Fixes #46594. Change-Id: I4bcdafecaa86885360599c204678871646bb221b Reviewed-on: https://go-review.googlesource.com/c/go/+/385997 Trust: Matthew Dempsky Run-TryBot: Matthew Dempsky Reviewed-by: David Chase TryBot-Result: Gopher Robot Reviewed-by: Robert Findley --- src/go/types/package.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/go/types/package.go b/src/go/types/package.go index 7b89def1b5..26385dc39b 100644 --- a/src/go/types/package.go +++ b/src/go/types/package.go @@ -39,7 +39,13 @@ func (pkg *Package) SetName(name string) { pkg.name = name } // Scope returns the (complete or incomplete) package scope // holding the objects declared at package level (TypeNames, // Consts, Vars, and Funcs). -func (pkg *Package) Scope() *Scope { return pkg.scope } +// For a nil pkg receiver, Scope returns the Universe scope. +func (pkg *Package) Scope() *Scope { + if pkg != nil { + return pkg.scope + } + return Universe +} // A package is complete if its scope contains (at least) all // exported objects; otherwise it is incomplete. -- 2.50.0