Skip to content

Commit e31fa68

Browse files
committed
cmd/api: work on Windows again, and make gccgo files work a bit more
handle string and []byte conversions. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/5754082
1 parent 764880e commit e31fa68

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

src/cmd/api/goapi.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,14 @@ func (w *Walker) varValueType(vi interface{}) (string, error) {
579579
}
580580
}
581581
// maybe a function call; maybe a conversion. Need to lookup type.
582-
return "", fmt.Errorf("not a known function %q", w.nodeString(v.Fun))
582+
// TODO(bradfitz): this is a hack, but arguably most of this tool is,
583+
// until the Go AST has type information.
584+
nodeStr := w.nodeString(v.Fun)
585+
switch nodeStr {
586+
case "string", "[]byte":
587+
return nodeStr, nil
588+
}
589+
return "", fmt.Errorf("not a known function %q", nodeStr)
583590
default:
584591
return "", fmt.Errorf("unknown const value type %T", vi)
585592
}

src/cmd/api/testdata/src/pkg/p1/golden.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,16 @@ pkg p1, type T struct
5858
pkg p1, type TPtrExported struct
5959
pkg p1, type TPtrExported struct, embedded *Embedded
6060
pkg p1, type TPtrUnexported struct
61+
pkg p1, var ByteConv []byte
6162
pkg p1, var ChecksumError error
6263
pkg p1, var SIPtr *SI
6364
pkg p1, var SIPtr2 *SI
6465
pkg p1, var SIVal SI
66+
pkg p1, var StrConv string
6567
pkg p1, var V string
66-
pkg p1, var VError Error
6768
pkg p1, var V1 uint64
6869
pkg p1, var V2 p2.Twoer
70+
pkg p1, var VError Error
6971
pkg p1, var X I
7072
pkg p1, var X int64
7173
pkg p1, var Y int

src/cmd/api/testdata/src/pkg/p1/p1.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ var (
2727
V2 = ptwo.G()
2828
)
2929

30+
// Variables with conversions:
31+
var (
32+
StrConv = string("foo")
33+
ByteConv = []byte("foo")
34+
)
35+
3036
var ChecksumError = ptwo.NewError("gzip checksum error")
3137

3238
const B = 2

0 commit comments

Comments
 (0)