summaryrefslogtreecommitdiff
path: root/libgo/go/go/parser/interface.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/go/parser/interface.go')
-rw-r--r--libgo/go/go/parser/interface.go9
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 {