From: Matthew Dempsky Date: Tue, 15 Feb 2022 01:20:48 +0000 (-0800) Subject: go/types: return Universe for (*Package)(nil).Scope() X-Git-Tag: go1.19beta1~1058 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6e49c592de91fd7ea7d47aa50360a1c4f49172f8;p=gostls13.git 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 --- 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.