go/test/named1.go
Ian Lance Taylor fbba532fa0 gccgo does not distinguish "use" and "assign" in these error
messages.  Match gccgo output.

named1.go:32:2: error: argument 0 has wrong type (cannot use type bool as type Bool)
named1.go:33:2: error: argument 0 has wrong type (cannot use type bool as type Bool)
named1.go:35:5: error: incompatible type for map index (cannot use type bool as type Bool)
named1.go:36:12: error: incompatible type for map assignment (cannot use type Bool as type bool)
named1.go:38:5: error: incompatible types in assignment (cannot use type bool as type Bool)
named1.go:40:2: error: argument 0 has wrong type (cannot use type bool as type Bool)
named1.go:42:5: error: incompatible type for receive (cannot use type bool as type Bool)
named1.go:46:5: error: incompatible type for type guard (cannot use type bool as type Bool)
named1.go:50:5: error: incompatible type for type guard (cannot use type bool as type Bool)
named1.go:53:2: error: argument 0 has wrong type (cannot use type bool as type Bool)
named1.go:54:5: error: incompatible types in assignment (cannot use type bool as type Bool)

R=rsc
DELTA=4  (0 added, 0 deleted, 4 changed)
OCL=35943
CL=35943
2009-10-20 23:11:00 -07:00

57 lines
1.2 KiB
Go

// errchk $G -e $D/$F.go
// Copyright 2009 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.
// Test that basic operations on named types are valid
// and preserve the type.
package main
type Bool bool
type Map map[int]int
func (Map) M() {}
func asBool(Bool) {}
func main() {
var (
b Bool = true;
i, j int;
c = make(chan int);
m = make(Map);
)
asBool(b);
asBool(!b);
asBool(true);
asBool(*&b);
asBool(Bool(true));
asBool(1!=2); // ERROR "cannot use.*type bool.*as type Bool"
asBool(i < j); // ERROR "cannot use.*type bool.*as type Bool"
_, b = m[2]; // ERROR "cannot .* bool.*type Bool"
m[2] = 1, b; // ERROR "cannot use.*type Bool.*as type bool"
b = c<-1; // ERROR "cannot use.*type bool.*type Bool"
_ = b;
asBool(c<-1); // ERROR "cannot use.*type bool.*as type Bool"
_, b = <-c; // ERROR "cannot .* bool.*type Bool"
_ = b;
var inter interface{};
_, b = inter.(Map); // ERROR "cannot .* bool.*type Bool"
_ = b;
var minter interface{M()};
_, b = minter.(Map); // ERROR "cannot .* bool.*type Bool"
_ = b;
asBool(closed(c)); // ERROR "cannot use.*type bool.*as type Bool"
b = closed(c); // ERROR "cannot use.*type bool.*type Bool"
_ = b;
}