test: add testcases for gccgo bug

Add a couple of testcase for a gccgo type checking bug.

Updates #31412.

Change-Id: I7a813dafde78e4add1432602d2af5fe879415e1c
Reviewed-on: https://go-review.googlesource.com/c/go/+/171761
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Than McIntosh 2019-04-11 15:47:33 -04:00
parent 2ebdb5ec06
commit d86c35e523
2 changed files with 52 additions and 0 deletions

View file

@ -0,0 +1,32 @@
// compile
// 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.
// This code was incorrectly flagged as erroneous by gccgo.
package main
type Name string
type EFunc func(int) int
func Register(f EFunc, names ...Name) int {
return f(len(names))
}
const (
B Name = "B"
)
func RegisterIt() {
n := B + "Duck"
d := B + "Goose"
f := func(x int) int { return x + 9 }
Register(f, n, d)
}
func main() {
RegisterIt()
}

View file

@ -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.
// This code was incorrectly accepted by gccgo.
package main
type N string
type M string
const B N = "B"
const C M = "C"
func main() {
q := B + C // ERROR "mismatched types|incompatible types"
println(q)
}