summaryrefslogtreecommitdiffstats
path: root/libgo/go
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2012-06-12 20:33:22 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2012-06-12 20:33:22 +0000
commitb3e2a6c9a7ee815324c4902eb65f75152989ad61 (patch)
tree33b14dcd566e3f484c612221423ad78d80bfe383 /libgo/go
parentc0521a10c50156c94b2e80b7e5ce40763dde66e8 (diff)
downloadppe42-gcc-b3e2a6c9a7ee815324c4902eb65f75152989ad61.tar.gz
ppe42-gcc-b3e2a6c9a7ee815324c4902eb65f75152989ad61.zip
compiler, reflect: Handle package path like gc compiler.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@188482 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo/go')
-rw-r--r--libgo/go/encoding/xml/marshal_test.go2
-rw-r--r--libgo/go/html/template/escape_test.go2
-rw-r--r--libgo/go/reflect/type.go24
3 files changed, 24 insertions, 4 deletions
diff --git a/libgo/go/encoding/xml/marshal_test.go b/libgo/go/encoding/xml/marshal_test.go
index 6f0ecfc233b..b6978a1e65b 100644
--- a/libgo/go/encoding/xml/marshal_test.go
+++ b/libgo/go/encoding/xml/marshal_test.go
@@ -726,7 +726,7 @@ var marshalErrorTests = []struct {
},
{
Value: map[*Ship]bool{nil: false},
- Err: "xml: unsupported type: map[*encoding/xml.Ship]bool",
+ Err: "xml: unsupported type: map[*xml.Ship]bool",
Kind: reflect.Map,
},
{
diff --git a/libgo/go/html/template/escape_test.go b/libgo/go/html/template/escape_test.go
index 6670be9a195..ce12c1795c2 100644
--- a/libgo/go/html/template/escape_test.go
+++ b/libgo/go/html/template/escape_test.go
@@ -226,7 +226,7 @@ func TestEscape(t *testing.T) {
{
"badMarshaler",
`<button onclick='alert(1/{{.B}}in numbers)'>`,
- `<button onclick='alert(1/ /* json: error calling MarshalJSON for type *html/template.badMarshaler: invalid character &#39;f&#39; looking for beginning of object key string */null in numbers)'>`,
+ `<button onclick='alert(1/ /* json: error calling MarshalJSON for type *template.badMarshaler: invalid character &#39;f&#39; looking for beginning of object key string */null in numbers)'>`,
},
{
"jsMarshaler",
diff --git a/libgo/go/reflect/type.go b/libgo/go/reflect/type.go
index 4999824c919..a264ef1e082 100644
--- a/libgo/go/reflect/type.go
+++ b/libgo/go/reflect/type.go
@@ -83,6 +83,9 @@ type Type interface {
// compare the Types directly.
String() string
+ // Used internally by gccgo--the string retaining quoting.
+ rawString() string
+
// Kind returns the specific kind of this type.
Kind() Kind
@@ -432,7 +435,24 @@ func (t *commonType) toType() Type {
return canonicalize(t)
}
-func (t *commonType) String() string { return *t.string }
+func (t *commonType) rawString() string { return *t.string }
+
+func (t *commonType) String() string {
+ // For gccgo, strip out quoted strings.
+ s := *t.string
+ var q bool
+ r := make([]byte, len(s))
+ j := 0
+ for i := 0; i < len(s); i++ {
+ if s[i] == '"' {
+ q = !q
+ } else if !q {
+ r[j] = s[i]
+ j++
+ }
+ }
+ return string(r[:j])
+}
func (t *commonType) Size() uintptr { return t.size }
@@ -942,7 +962,7 @@ func canonicalize(t Type) Type {
u := t.uncommon()
var s string
if u == nil || u.PkgPath() == "" {
- s = t.String()
+ s = t.rawString()
} else {
s = u.PkgPath() + "." + u.Name()
}
OpenPOWER on IntegriCloud