mirror of
https://github.com/golang/go
synced 2024-11-25 08:27:57 -07:00
gc: allow complex types to be receiver types
Fixes #1716. R=golang-dev, rsc1, rsc CC=golang-dev https://golang.org/cl/4439068
This commit is contained in:
parent
a9a6c90104
commit
883d68f885
@ -468,7 +468,7 @@ typeinit(void)
|
|||||||
okforadd[i] = 1;
|
okforadd[i] = 1;
|
||||||
okforarith[i] = 1;
|
okforarith[i] = 1;
|
||||||
okforconst[i] = 1;
|
okforconst[i] = 1;
|
||||||
// issimple[i] = 1;
|
issimple[i] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -488,7 +488,7 @@ algtype(Type *t)
|
|||||||
{
|
{
|
||||||
int a;
|
int a;
|
||||||
|
|
||||||
if(issimple[t->etype] || isptr[t->etype] || iscomplex[t->etype] ||
|
if(issimple[t->etype] || isptr[t->etype] ||
|
||||||
t->etype == TCHAN || t->etype == TFUNC || t->etype == TMAP) {
|
t->etype == TCHAN || t->etype == TFUNC || t->etype == TMAP) {
|
||||||
if(t->width == widthptr)
|
if(t->width == widthptr)
|
||||||
a = AMEMWORD;
|
a = AMEMWORD;
|
||||||
|
31
test/fixedbugs/bug334.go
Normal file
31
test/fixedbugs/bug334.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// $G $D/$F.go || echo BUG: bug334
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Issue 1716
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
type (
|
||||||
|
cplx64 complex64
|
||||||
|
cplx128 complex128
|
||||||
|
)
|
||||||
|
|
||||||
|
func (c cplx64) Foo() {}
|
||||||
|
func (c cplx128) Foo() {}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var c64 cplx128
|
||||||
|
var c128 cplx64
|
||||||
|
c64.Foo()
|
||||||
|
c128.Foo()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bug334.go:16: invalid receiver type cplx64
|
||||||
|
bug334.go:17: invalid receiver type cplx128
|
||||||
|
bug334.go:22: c64.Foo undefined (type cplx128 has no field or method Foo)
|
||||||
|
bug334.go:23: c128.Foo undefined (type cplx64 has no field or method Foo)
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user