Commit 883d68f8 authored by Robert Hencke's avatar Robert Hencke Committed by Russ Cox

gc: allow complex types to be receiver types

Fixes #1716.

R=golang-dev, rsc1, rsc
CC=golang-dev
https://golang.org/cl/4439068
parent a9a6c901
...@@ -468,7 +468,7 @@ typeinit(void) ...@@ -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) ...@@ -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;
......
// $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)
*/
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment