mirror of https://github.com/golang/go.git
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.
|
||||
|
|
|
|||
|
|
@ -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