diff options
author | Robert Griesemer <gri@golang.org> | 2018-01-18 16:05:39 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2018-02-12 22:58:12 +0000 |
commit | 945872e5ef8b1f73e2f7e23d76a91dec68f8de35 (patch) | |
tree | 0ee90dc6c4c6d523f6539df8e1bbb49b5c6c2045 /src/cmd/compile/internal/syntax/testdata | |
parent | 52fcac3b7cf8a8d660b4d73188238ac9e7974ee4 (diff) | |
download | go-945872e5ef8b1f73e2f7e23d76a91dec68f8de35.tar.gz go-945872e5ef8b1f73e2f7e23d76a91dec68f8de35.zip |
cmd/compile/internal/syntax: added test cases for recent fixes
R=go1.11.
Now that we have a syntax error test harness, we can add the
proper tests for the recent parser fixes.
For #20800.
For #20789.
For #23385.
For #23434.
A test for #20789 already exists in test/fixedbugs, but this
is the better location for that test. But leaving the existing
one where it is as well.
Change-Id: I5937b9b63bafd1efab467a00344302e717976171
Reviewed-on: https://go-review.googlesource.com/88336
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/syntax/testdata')
3 files changed, 52 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/syntax/testdata/issue20789.src b/src/cmd/compile/internal/syntax/testdata/issue20789.src new file mode 100644 index 0000000000..5f150db7e6 --- /dev/null +++ b/src/cmd/compile/internal/syntax/testdata/issue20789.src @@ -0,0 +1,9 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Make sure this doesn't crash the compiler. +// Line 9 must end in EOF for this test (no newline). + +package e +func([<-chan<-[func /* ERROR unexpected u */ u){go /* ERROR must be function call */
\ No newline at end of file diff --git a/src/cmd/compile/internal/syntax/testdata/issue23385.src b/src/cmd/compile/internal/syntax/testdata/issue23385.src new file mode 100644 index 0000000000..44abcd7e23 --- /dev/null +++ b/src/cmd/compile/internal/syntax/testdata/issue23385.src @@ -0,0 +1,12 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Check error message for use of = instead of == . + +package p + +func f() { + if true || 0 = 1 /* ERROR assignment .* used as value */ { + } +} diff --git a/src/cmd/compile/internal/syntax/testdata/issue23434.src b/src/cmd/compile/internal/syntax/testdata/issue23434.src new file mode 100644 index 0000000000..5a72a7f4ed --- /dev/null +++ b/src/cmd/compile/internal/syntax/testdata/issue23434.src @@ -0,0 +1,31 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Test case for issue 23434: Better synchronization of +// parser after missing type. There should be exactly +// one error each time, with now follow errors. + +package p + +type T /* ERROR unexpected newline */ + +type Map map[int] /* ERROR unexpected newline */ + +// Examples from #23434: + +func g() { + m := make(map[string] /* ERROR unexpected ! */ !) + for { + x := 1 + print(x) + } +} + +func f() { + m := make(map[string] /* ERROR unexpected \) */ ) + for { + x := 1 + print(x) + } +} |