diff options
Diffstat (limited to 'libgo/go/go/parser/interface.go')
-rw-r--r-- | libgo/go/go/parser/interface.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libgo/go/go/parser/interface.go b/libgo/go/go/parser/interface.go index 5c203a7846e2..4a84a97ae795 100644 --- a/libgo/go/go/parser/interface.go +++ b/libgo/go/go/parser/interface.go @@ -90,6 +90,15 @@ func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode) var p parser p.init(fset, filename, text, mode) f := p.parseFile() + if f == nil { + // source is not a valid Go source file - satisfy + // ParseFile API and return a valid (but) empty + // *ast.File + f = &ast.File{ + Name: new(ast.Ident), + Scope: ast.NewScope(nil), + } + } // sort errors if p.mode&SpuriousErrors == 0 { |