modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/bug090.go (about) 1 // errorcheck 2 3 // Copyright 2009 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package main 8 9 const ( 10 c3div2 = 3/2; 11 f3div2 = 3./2.; 12 ) 13 14 func assert(t bool, s string) { 15 if !t { 16 panic(s) 17 } 18 } 19 20 func main() { 21 var i int; 22 var f float64; 23 24 assert(c3div2 == 1, "3/2"); 25 assert(f3div2 == 1.5, "3/2"); 26 27 i = c3div2; 28 assert(i == c3div2, "i == c3div2"); 29 30 f = c3div2; 31 assert(f == c3div2, "f == c3div2"); 32 33 f = f3div2; 34 assert(f == f3div2, "f == f3div2"); 35 36 i = f3div2; // ERROR "truncate" 37 assert(i == c3div2, "i == c3div2 from f3div2"); 38 assert(i != f3div2, "i != f3div2"); // ERROR "truncate" 39 40 const g float64 = 1.0; 41 i = g; // ERROR "convert|incompatible|cannot" 42 43 const h float64 = 3.14; 44 i = h; // ERROR "convert|incompatible|cannot" 45 i = int(h); // ERROR "truncate" 46 }