]> Cypherpunks.ru repositories - gostls13.git/commitdiff
go/types, types2: replace (internal) writePackage with packagePrefix
authorRobert Griesemer <gri@golang.org>
Thu, 17 Nov 2022 22:25:50 +0000 (14:25 -0800)
committerGopher Robot <gobot@golang.org>
Fri, 18 Nov 2022 00:16:52 +0000 (00:16 +0000)
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>

src/cmd/compile/internal/types2/decl.go
src/cmd/compile/internal/types2/object.go
src/cmd/compile/internal/types2/typestring.go
src/go/types/decl.go
src/go/types/object.go
src/go/types/typestring.go

index 8985aa9b614378bf750cb54c10f2dda80f321cdc..530a8f5b69fd8dbcaeeb692a5690680d6aea2e49 100644 (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
index f37356180973abf86561321e093f6b22dfb5de3b..5c0ea8ca167a5c3d9520b6964f77d090eddc5dd8 100644 (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)
index 19f253c41e21bce937f05f608651b7260a5dfd47..94b8ba4ac64e2535a7b25b55a2c16a7091ca175c 100644 (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)
 }
 
index 5f86cd675c882bd54144a584fcc7a12102684e71..adc485c400994f953fc68c6b9b56ca6821215282 100644 (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
index f203b0113d20b6efdae849c72411a0d13a10c843..6e63948680b12533b2500f37ff4ccac6ab927701 100644 (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)
index 8fdafc2d4acde2da6ad9397899fdf810f844a435..bf541fc263b3e474ebcd581fac1e8aa9de392f8a 100644 (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)
 }