mirror of
https://github.com/golang/go
synced 2024-11-25 06:07:58 -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;
|
||||
okforarith[i] = 1;
|
||||
okforconst[i] = 1;
|
||||
// issimple[i] = 1;
|
||||
issimple[i] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -488,7 +488,7 @@ algtype(Type *t)
|
||||
{
|
||||
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) {
|
||||
if(t->width == widthptr)
|
||||
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