summaryrefslogtreecommitdiffstats
path: root/test/fixedbugs/bug090.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/fixedbugs/bug090.go')
-rw-r--r--test/fixedbugs/bug090.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/fixedbugs/bug090.go b/test/fixedbugs/bug090.go
new file mode 100644
index 0000000..6d30cca
--- /dev/null
+++ b/test/fixedbugs/bug090.go
@@ -0,0 +1,46 @@
+// errorcheck
+
+// 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.
+
+package main
+
+const (
+ c3div2 = 3/2;
+ f3div2 = 3./2.;
+)
+
+func assert(t bool, s string) {
+ if !t {
+ panic(s)
+ }
+}
+
+func main() {
+ var i int;
+ var f float64;
+
+ assert(c3div2 == 1, "3/2");
+ assert(f3div2 == 1.5, "3/2");
+
+ i = c3div2;
+ assert(i == c3div2, "i == c3div2");
+
+ f = c3div2;
+ assert(f == c3div2, "f == c3div2");
+
+ f = f3div2;
+ assert(f == f3div2, "f == f3div2");
+
+ i = f3div2; // ERROR "truncate"
+ assert(i == c3div2, "i == c3div2 from f3div2");
+ assert(i != f3div2, "i != f3div2"); // ERROR "truncate"
+
+ const g float64 = 1.0;
+ i = g; // ERROR "convert|incompatible|cannot"
+
+ const h float64 = 3.14;
+ i = h; // ERROR "convert|incompatible|cannot"
+ i = int(h); // ERROR "truncate|cannot convert"
+}