mirror of
https://github.com/golang/go
synced 2024-11-24 23:17:57 -07:00
gc: bug327
Fixes #1674. R=ken2 CC=golang-dev https://golang.org/cl/4368057
This commit is contained in:
parent
62c24811e7
commit
35c880b1e2
@ -1889,8 +1889,9 @@ assignop(Type *src, Type *dst, char **why)
|
||||
return OCONVNOP;
|
||||
|
||||
// 2. src and dst have identical underlying types
|
||||
// and either src or dst is not a named type.
|
||||
if(eqtype(src->orig, dst->orig) && (src->sym == S || dst->sym == S))
|
||||
// and either src or dst is not a named type or
|
||||
// both are interface types.
|
||||
if(eqtype(src->orig, dst->orig) && (src->sym == S || dst->sym == S || src->etype == TINTER))
|
||||
return OCONVNOP;
|
||||
|
||||
// 3. dst is an interface type and src implements dst.
|
||||
|
18
test/fixedbugs/bug327.go
Normal file
18
test/fixedbugs/bug327.go
Normal file
@ -0,0 +1,18 @@
|
||||
// $G $D/$F.go && $L $F.$A && ./$A.out
|
||||
|
||||
// Copyright 2011 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 (
|
||||
a interface{}
|
||||
b interface{}
|
||||
)
|
||||
|
||||
func main() {
|
||||
x := a(1)
|
||||
z := b(x)
|
||||
_ = z
|
||||
}
|
Loading…
Reference in New Issue
Block a user