From 78ebe2b392f9d3fba87a0ea7dd75569fcb998488 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 24 Sep 2009 17:54:47 -0700 Subject: [PATCH] test: comparisons have type bool R=r DELTA=81 (57 added, 24 deleted, 0 changed) OCL=34991 CL=34996 --- test/named.go | 24 --------------------- test/named1.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 test/named1.go diff --git a/test/named.go b/test/named.go index 47a1032bf8..a52490215b 100644 --- a/test/named.go +++ b/test/named.go @@ -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); diff --git a/test/named1.go b/test/named1.go new file mode 100644 index 0000000000..406e73b193 --- /dev/null +++ b/test/named1.go @@ -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; +} + -- 2.48.1