compiler: improve error messages for expected curly brace

For golang/go#17328

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273890
This commit is contained in:
Ian Lance Taylor 2020-11-28 18:51:05 -08:00
parent c7f272e05e
commit 5ba975e668
5 changed files with 10 additions and 12 deletions

View file

@ -1,4 +1,4 @@
213abeedc85ed638a878f9457e422897fda3a111
45461eeba1db1a3b4194dc8ecc331c0e92f5ad4c
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View file

@ -4422,7 +4422,7 @@ Parse::if_stat()
{
Location semi_loc = this->location();
if (this->advance_token()->is_op(OPERATOR_LCURLY))
go_error_at(semi_loc, "missing %<{%> after if clause");
go_error_at(semi_loc, "unexpected semicolon or newline, expecting %<{%> after if clause");
// Otherwise we will get an error when we call this->block
// below.
}
@ -5359,7 +5359,7 @@ Parse::for_stat(Label* label)
{
Location semi_loc = this->location();
if (this->advance_token()->is_op(OPERATOR_LCURLY))
go_error_at(semi_loc, "missing %<{%> after for clause");
go_error_at(semi_loc, "unexpected semicolon or newline, expecting %<{%> after for clause");
// Otherwise we will get an error when we call this->block
// below.
}
@ -5430,7 +5430,7 @@ Parse::for_clause(Expression** cond, Block** post)
*cond = NULL;
else if (this->peek_token()->is_op(OPERATOR_LCURLY))
{
go_error_at(this->location(), "missing %<{%> after for clause");
go_error_at(this->location(), "unexpected semicolon or newline, expecting %<{%> after for clause");
*cond = NULL;
*post = NULL;
return;

View file

@ -1,13 +1,13 @@
// errorcheck
// Copyright 2010 The Go Authors. All rights reserved.
// Copyright 2010 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.
package main
func main() {
if x; y // ERROR "missing .*{.* after if clause|undefined"
if x; y // ERROR "expected .*{.* after if clause|undefined"
{
z // GCCGO_ERROR "undefined"

View file

@ -1,13 +1,13 @@
// errorcheck
// Copyright 2010 The Go Authors. All rights reserved.
// Copyright 2010 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.
package main
func main() {
for x; y; z // ERROR "missing .*{.* after for clause|undefined"
for x; y; z // ERROR "expected .*{.* after for clause|undefined"
{
z // GCCGO_ERROR "undefined"

View file

@ -1,6 +1,6 @@
// errorcheck
// Copyright 2010 The Go Authors. All rights reserved.
// Copyright 2010 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.
@ -8,7 +8,5 @@ package main
func main() {
for x // GCCGO_ERROR "undefined"
{ // ERROR "missing .*{.* after for clause"
{ // ERROR "unexpected {, expecting for loop condition|expecting .*{.* after for clause"
z // GCCGO_ERROR "undefined"