go/types, types2: replace (internal) writePackage with packagePrefix

This makes it easier to use the package string prefix in some cases
(cleanup).

Change-Id: I0ae74bf8770999110e7d6e49eac4e42962e78596
Reviewed-on: https://go-review.googlesource.com/c/go/+/451795
Auto-Submit: Robert Griesemer <gri@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Robert Griesemer 2022-11-17 14:25:50 -08:00 committed by Gopher Robot
parent 4571164537
commit a8f9d3f0af
6 changed files with 16 additions and 28 deletions

View File

@ -5,7 +5,6 @@
package types2
import (
"bytes"
"cmd/compile/internal/syntax"
"fmt"
"go/constant"
@ -311,10 +310,7 @@ func (check *Checker) cycleError(cycle []Object) {
// may refer to imported types. See issue #50788.
// TODO(gri) This functionality is used elsewhere. Factor it out.
name := func(obj Object) string {
var buf bytes.Buffer
writePackage(&buf, obj.Pkg(), check.qualifier)
buf.WriteString(obj.Name())
return buf.String()
return packagePrefix(obj.Pkg(), check.qualifier) + obj.Name()
}
// TODO(gri) Should we start with the last (rather than the first) object in the cycle

View File

@ -512,7 +512,7 @@ func writeObject(buf *bytes.Buffer, obj Object, qf Qualifier) {
// For package-level objects, qualify the name.
if obj.Pkg() != nil && obj.Pkg().scope.Lookup(obj.Name()) == obj {
writePackage(buf, obj.Pkg(), qf)
buf.WriteString(packagePrefix(obj.Pkg(), qf))
}
buf.WriteString(obj.Name())
@ -553,9 +553,9 @@ func writeObject(buf *bytes.Buffer, obj Object, qf Qualifier) {
WriteType(buf, typ, qf)
}
func writePackage(buf *bytes.Buffer, pkg *Package, qf Qualifier) {
func packagePrefix(pkg *Package, qf Qualifier) string {
if pkg == nil {
return
return ""
}
var s string
if qf != nil {
@ -564,9 +564,9 @@ func writePackage(buf *bytes.Buffer, pkg *Package, qf Qualifier) {
s = pkg.Path()
}
if s != "" {
buf.WriteString(s)
buf.WriteByte('.')
s += "."
}
return s
}
// ObjectString returns the string form of obj.
@ -604,7 +604,7 @@ func writeFuncName(buf *bytes.Buffer, f *Func, qf Qualifier) {
buf.WriteByte(')')
buf.WriteByte('.')
} else if f.pkg != nil {
writePackage(buf, f.pkg, qf)
buf.WriteString(packagePrefix(f.pkg, qf))
}
}
buf.WriteString(f.name)

View File

@ -388,9 +388,7 @@ func (w *typeWriter) tParamList(list []*TypeParam) {
}
func (w *typeWriter) typeName(obj *TypeName) {
if obj.pkg != nil {
writePackage(w.buf, obj.pkg, w.qf)
}
w.string(packagePrefix(obj.pkg, w.qf))
w.string(obj.name)
}

View File

@ -5,7 +5,6 @@
package types
import (
"bytes"
"fmt"
"go/ast"
"go/constant"
@ -309,10 +308,7 @@ func (check *Checker) cycleError(cycle []Object) {
// may refer to imported types. See issue #50788.
// TODO(gri) Thus functionality is used elsewhere. Factor it out.
name := func(obj Object) string {
var buf bytes.Buffer
writePackage(&buf, obj.Pkg(), check.qualifier)
buf.WriteString(obj.Name())
return buf.String()
return packagePrefix(obj.Pkg(), check.qualifier) + obj.Name()
}
// TODO(gri) Should we start with the last (rather than the first) object in the cycle

View File

@ -469,7 +469,7 @@ func writeObject(buf *bytes.Buffer, obj Object, qf Qualifier) {
// For package-level objects, qualify the name.
if obj.Pkg() != nil && obj.Pkg().scope.Lookup(obj.Name()) == obj {
writePackage(buf, obj.Pkg(), qf)
buf.WriteString(packagePrefix(obj.Pkg(), qf))
}
buf.WriteString(obj.Name())
@ -510,9 +510,9 @@ func writeObject(buf *bytes.Buffer, obj Object, qf Qualifier) {
WriteType(buf, typ, qf)
}
func writePackage(buf *bytes.Buffer, pkg *Package, qf Qualifier) {
func packagePrefix(pkg *Package, qf Qualifier) string {
if pkg == nil {
return
return ""
}
var s string
if qf != nil {
@ -521,9 +521,9 @@ func writePackage(buf *bytes.Buffer, pkg *Package, qf Qualifier) {
s = pkg.Path()
}
if s != "" {
buf.WriteString(s)
buf.WriteByte('.')
s += "."
}
return s
}
// ObjectString returns the string form of obj.
@ -561,7 +561,7 @@ func writeFuncName(buf *bytes.Buffer, f *Func, qf Qualifier) {
buf.WriteByte(')')
buf.WriteByte('.')
} else if f.pkg != nil {
writePackage(buf, f.pkg, qf)
buf.WriteString(packagePrefix(f.pkg, qf))
}
}
buf.WriteString(f.name)

View File

@ -389,9 +389,7 @@ func (w *typeWriter) tParamList(list []*TypeParam) {
}
func (w *typeWriter) typeName(obj *TypeName) {
if obj.pkg != nil {
writePackage(w.buf, obj.pkg, w.qf)
}
w.string(packagePrefix(obj.pkg, w.qf))
w.string(obj.name)
}