test: comparisons have type bool

R=r
DELTA=81  (57 added, 24 deleted, 0 changed)
OCL=34991
CL=34996
This commit is contained in:
Russ Cox 2009-09-24 17:54:47 -07:00
parent f6faa9de1f
commit 78ebe2b392
2 changed files with 57 additions and 24 deletions

View file

@ -68,34 +68,10 @@ func main() {
asBool(!b);
isBool(!b);
asBool(true);
asBool(1!=2);
asBool(*&b);
isBool(*&b);
asBool(Bool(true));
isBool(Bool(true));
asBool(i < Int(f));
_, b = m[2];
m[2] = 1, b;
b = c<-1;
_ = b;
asBool(c<-1);
_, b = <-c;
_ = b;
var inter interface{};
_, b = inter.(Map);
_ = b;
var minter interface{M()};
_, b = minter.(Map);
_ = b;
asBool(closed(c));
b = closed(c);
_ = b;
asChan(c);
isChan(c);

57
test/named1.go Normal file
View file

@ -0,0 +1,57 @@
// 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 assign 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 assign bool.*type Bool"
_ = b;
var inter interface{};
_, b = inter.(Map); // ERROR "cannot assign bool.*type Bool"
_ = b;
var minter interface{M()};
_, b = minter.(Map); // ERROR "cannot assign 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;
}