mirror of
https://github.com/golang/go
synced 2024-11-11 20:40:21 -07:00
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:
parent
2ebdb5ec06
commit
d86c35e523
32
test/fixedbugs/issue31412a.go
Normal file
32
test/fixedbugs/issue31412a.go
Normal 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()
|
||||
}
|
20
test/fixedbugs/issue31412b.go
Normal file
20
test/fixedbugs/issue31412b.go
Normal 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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user