mirror of
https://github.com/golang/go
synced 2024-11-18 14:54:40 -07:00
go/internal/gccgoimporter: accept missed portions of v2 format
Same as https://go-review.googlesource.com/c/34371/ in the standard library. Fixes #18301. Change-Id: I132585e0f98c53437fdef44ac36af8f21d141a83 Reviewed-on: https://go-review.googlesource.com/34387 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
ae02084200
commit
dd79664177
@ -97,8 +97,11 @@ var importerTests = [...]importerTest{
|
||||
{pkgpath: "complexnums", name: "PN", want: "const PN untyped complex", wantval: "(1 + -1i)"},
|
||||
{pkgpath: "complexnums", name: "PP", want: "const PP untyped complex", wantval: "(1 + 1i)"},
|
||||
{pkgpath: "conversions", name: "Bits", want: "const Bits Units", wantval: `"bits"`},
|
||||
// TODO: enable this entry once bug has been tracked down
|
||||
//{pkgpath: "imports", wantinits: []string{"imports..import", "fmt..import", "math..import"}},
|
||||
{pkgpath: "time", name: "Duration", want: "type Duration int64"},
|
||||
{pkgpath: "time", name: "Nanosecond", want: "const Nanosecond Duration", wantval: "1"},
|
||||
{pkgpath: "unicode", name: "IsUpper", want: "func IsUpper(r rune) bool"},
|
||||
{pkgpath: "unicode", name: "MaxRune", want: "const MaxRune untyped rune", wantval: "1114111"},
|
||||
{pkgpath: "imports", wantinits: []string{"imports..import", "fmt..import", "math..import"}},
|
||||
}
|
||||
|
||||
func TestGoxImporter(t *testing.T) {
|
||||
|
@ -713,7 +713,10 @@ func (p *parser) parseType(pkg *types.Package) (t types.Type) {
|
||||
func (p *parser) parsePackageInit() PackageInit {
|
||||
name := p.parseUnquotedString()
|
||||
initfunc := p.parseUnquotedString()
|
||||
priority := int(p.parseInt())
|
||||
priority := -1
|
||||
if p.version == "v1" {
|
||||
priority = int(p.parseInt())
|
||||
}
|
||||
return PackageInit{Name: name, InitFunc: initfunc, Priority: priority}
|
||||
}
|
||||
|
||||
@ -768,6 +771,15 @@ func (p *parser) parseInitDataDirective() {
|
||||
}
|
||||
p.expect(';')
|
||||
|
||||
case "init_graph":
|
||||
p.next()
|
||||
// The graph data is thrown away for now.
|
||||
for p.tok != ';' && p.tok != scanner.EOF {
|
||||
p.parseInt()
|
||||
p.parseInt()
|
||||
}
|
||||
p.expect(';')
|
||||
|
||||
case "checksum":
|
||||
// Don't let the scanner try to parse the checksum as a number.
|
||||
defer func(mode uint) {
|
||||
@ -799,7 +811,7 @@ func (p *parser) parseDirective() {
|
||||
}
|
||||
|
||||
switch p.lit {
|
||||
case "v1", "v2", "priority", "init", "checksum":
|
||||
case "v1", "v2", "priority", "init", "init_graph", "checksum":
|
||||
p.parseInitDataDirective()
|
||||
|
||||
case "package":
|
||||
|
BIN
go/internal/gccgoimporter/testdata/time.gox
vendored
Normal file
BIN
go/internal/gccgoimporter/testdata/time.gox
vendored
Normal file
Binary file not shown.
BIN
go/internal/gccgoimporter/testdata/unicode.gox
vendored
Normal file
BIN
go/internal/gccgoimporter/testdata/unicode.gox
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user