mirror of
https://github.com/golang/go
synced 2024-11-13 17:50:23 -07:00
go/doc: fix build
1) go/doc: - create correct ast.FuncType - use more commonly used variable names in a test case 2) make ast.FuncType.Pos robust in case of incorrect ASTs R=golang-dev CC=golang-dev https://golang.org/cl/9651044
This commit is contained in:
parent
8f37e41963
commit
e3a72b05f8
@ -439,7 +439,7 @@ func (x *KeyValueExpr) Pos() token.Pos { return x.Key.Pos() }
|
||||
func (x *ArrayType) Pos() token.Pos { return x.Lbrack }
|
||||
func (x *StructType) Pos() token.Pos { return x.Struct }
|
||||
func (x *FuncType) Pos() token.Pos {
|
||||
if x.Func.IsValid() {
|
||||
if x.Func.IsValid() || x.Params == nil { // see issue 3870
|
||||
return x.Func
|
||||
}
|
||||
return x.Params.Pos() // interface method declarations have no "func" keyword
|
||||
|
@ -265,7 +265,7 @@ func playExample(file *ast.File, body *ast.BlockStmt) *ast.File {
|
||||
// Synthesize main function.
|
||||
funcDecl := &ast.FuncDecl{
|
||||
Name: ast.NewIdent("main"),
|
||||
Type: &ast.FuncType{},
|
||||
Type: &ast.FuncType{Params: &ast.FieldList{}}, // FuncType.Params must be non-nil
|
||||
Body: body,
|
||||
}
|
||||
|
||||
|
@ -159,8 +159,8 @@ func main() {
|
||||
`
|
||||
|
||||
func TestExamples(t *testing.T) {
|
||||
fs := token.NewFileSet()
|
||||
file, err := parser.ParseFile(fs, "test.go", strings.NewReader(exampleTestFile), parser.ParseComments)
|
||||
fset := token.NewFileSet()
|
||||
file, err := parser.ParseFile(fset, "test.go", strings.NewReader(exampleTestFile), parser.ParseComments)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -174,11 +174,11 @@ func TestExamples(t *testing.T) {
|
||||
if e.Play == nil {
|
||||
g = "<nil>"
|
||||
} else {
|
||||
b := new(bytes.Buffer)
|
||||
if err := format.Node(b, fs, e.Play); err != nil {
|
||||
var buf bytes.Buffer
|
||||
if err := format.Node(&buf, fset, e.Play); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
g = b.String()
|
||||
g = buf.String()
|
||||
}
|
||||
if g != w {
|
||||
t.Errorf("%s: got Play == %q, want %q", c.Name, g, w)
|
||||
|
Loading…
Reference in New Issue
Block a user