From f980577064181bf8d24fe514c739305fce052968 Mon Sep 17 00:00:00 2001 From: Ryan Hitchman Date: Thu, 9 Dec 2010 13:41:24 -0500 Subject: [PATCH] gc: syntax error for incomplete chan type Fixes #932. R=rsc CC=golang-dev https://golang.org/cl/3515041 --- src/cmd/gc/go.errors | 9 +++++++++ test/syntax/chan.go | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/syntax/chan.go diff --git a/src/cmd/gc/go.errors b/src/cmd/gc/go.errors index cdd7578d41..b5af4678c9 100644 --- a/src/cmd/gc/go.errors +++ b/src/cmd/gc/go.errors @@ -35,6 +35,15 @@ static struct { % loadsys package imports LTYPE LNAME ';' "unexpected semicolon or newline in type declaration", + % loadsys package imports LCHAN '}' + "unexpected } in channel type", + + % loadsys package imports LCHAN ')' + "unexpected ) in channel type", + + % loadsys package imports LCHAN ',' + "unexpected comma in channel type", + % loadsys package imports LFUNC LNAME '(' ')' '{' if_stmt ';' LELSE "unexpected semicolon or newline before else", diff --git a/test/syntax/chan.go b/test/syntax/chan.go new file mode 100644 index 0000000000..48beb1e709 --- /dev/null +++ b/test/syntax/chan.go @@ -0,0 +1,17 @@ +// errchk $G -e $D/$F.go + +// 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 + +type xyz struct { + ch chan +} // ERROR "unexpected } in channel type" + +func Foo(y chan) { // ERROR "unexpected \) in channel type" +} + +func Bar(x chan, y int) { // ERROR "unexpected comma in channel type" +}