From: Robert Griesemer Date: Fri, 19 Jan 2018 00:05:39 +0000 (-0800) Subject: cmd/compile/internal/syntax: added test cases for recent fixes X-Git-Tag: go1.11beta1~1723 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=945872e5ef8b1f73e2f7e23d76a91dec68f8de35;p=gostls13.git 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 --- 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) + } +}