mirror of https://github.com/golang/go.git
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:
parent
4571164537
commit
a8f9d3f0af
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue