]> Cypherpunks repositories - gostls13.git/commitdiff
test: comparisons have type bool
authorRuss Cox <rsc@golang.org>
Fri, 25 Sep 2009 00:54:47 +0000 (17:54 -0700)
committerRuss Cox <rsc@golang.org>
Fri, 25 Sep 2009 00:54:47 +0000 (17:54 -0700)
R=r
DELTA=81  (57 added, 24 deleted, 0 changed)
OCL=34991
CL=34996

test/named.go
test/named1.go [new file with mode: 0644]

index 47a1032bf8b7602bb7d27cf54cfe8d0504757d28..a52490215b9fb96b796926d1127a733544f3e04f 100644 (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);
diff --git a/test/named1.go b/test/named1.go
new file mode 100644 (file)
index 0000000..406e73b
--- /dev/null
@@ -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;
+}
+