diff options
author | Matthew Dempsky <mdempsky@google.com> | 2019-09-10 20:06:51 -0700 |
---|---|---|
committer | Matthew Dempsky <mdempsky@google.com> | 2019-09-11 23:33:11 +0000 |
commit | 0b739fd4df6be871edcc17dd7832142a50a6f80e (patch) | |
tree | 0f162ae944b8869194b7b6116b9033ee521fcdfb /test/typeswitch2b.go | |
parent | e7e2b1c2b91320ef0ddf025d330061d56115dd53 (diff) | |
download | go-0b739fd4df6be871edcc17dd7832142a50a6f80e.tar.gz go-0b739fd4df6be871edcc17dd7832142a50a6f80e.zip |
cmd/compile: move duplicate type-case checking into typecheck
Part of the general trend of moving yyerror calls out of walk and into
typecheck.
Notably, this requires splitting test/typeswitch2.go into two files,
because now some of the errors are reported during typecheck and
others are still reported during walk; and if there were any errors
during typecheck, then cmd/compile exits without invoking walk.
Passes toolstash-check.
Change-Id: I05ee0c00b99af659ee1eef098d342d0d736cf31e
Reviewed-on: https://go-review.googlesource.com/c/go/+/194659
Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'test/typeswitch2b.go')
-rw-r--r-- | test/typeswitch2b.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/typeswitch2b.go b/test/typeswitch2b.go new file mode 100644 index 0000000000..135ae86cff --- /dev/null +++ b/test/typeswitch2b.go @@ -0,0 +1,20 @@ +// errorcheck + +// Copyright 2019 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. + +// Verify that various erroneous type switches are caught by the compiler. +// Does not compile. + +package main + +func notused(x interface{}) { + // The first t is in a different scope than the 2nd t; it cannot + // be accessed (=> declared and not used error); but it is legal + // to declare it. + switch t := 0; t := x.(type) { // ERROR "declared and not used" + case int: + _ = t // this is using the t of "t := x.(type)" + } +} |