summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/named.go24
-rw-r--r--test/named1.go57
2 files changed, 57 insertions, 24 deletions
diff --git a/test/named.go b/test/named.go
index 47a1032bf..a52490215 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 000000000..406e73b19
--- /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;
+}
+