mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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>
This commit is contained in:
parent
52fcac3b7c
commit
945872e5ef
3 changed files with 52 additions and 0 deletions
9
src/cmd/compile/internal/syntax/testdata/issue20789.src
vendored
Normal file
9
src/cmd/compile/internal/syntax/testdata/issue20789.src
vendored
Normal file
|
|
@ -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 */
|
||||||
12
src/cmd/compile/internal/syntax/testdata/issue23385.src
vendored
Normal file
12
src/cmd/compile/internal/syntax/testdata/issue23385.src
vendored
Normal file
|
|
@ -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 */ {
|
||||||
|
}
|
||||||
|
}
|
||||||
31
src/cmd/compile/internal/syntax/testdata/issue23434.src
vendored
Normal file
31
src/cmd/compile/internal/syntax/testdata/issue23434.src
vendored
Normal file
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue