-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathfloatcompare.go
71 lines (62 loc) · 1.35 KB
/
floatcompare.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// args: -Efloatcompare
package testdata
import "fmt"
func EqualCompareIfFloats() {
x, y := 400., 500.
if 300. == 100. { // ERROR `float comparison found "300. == 100."`
dummy()
}
if x == y { // ERROR `float comparison found "x == y"`
dummy()
}
if 300.+200. == 10. { // ERROR `float comparison found "300.+200. == 10."`
dummy()
}
if 300 == 200 {
dummy()
}
}
func NotEqualCompareIfFloats() {
x, y := 400., 500.
if 300. != 100. { // ERROR `float comparison found "300. != 100."`
dummy()
}
if x != y { // ERROR `float comparison found "x != y"`
dummy()
}
}
func EqualCompareIfCustomType() {
type number float64
var x, y number = 300., 400.
if x == y { // ERROR `float comparison found "x == y"`
dummy()
}
}
func GreaterLessCompareIfFloats() {
if 300. >= 100. { // ERROR `float comparison found "300. >= 100."`
dummy()
}
if 300. <= 100. { // ERROR `float comparison found "300. <= 100."`
dummy()
}
if 300. < 100. { // ERROR `float comparison found "300. < 100."`
dummy()
}
if 300. > 100. { // ERROR `float comparison found "300. > 100."`
dummy()
}
}
func SwitchStmtWithFloat() {
switch 300. { // ERROR "float comparison with switch statement"
case 100.:
case 200:
}
}
func EqualCompareSwitchFloats() {
switch {
case 100. == 200.: // ERROR `float comparison found "100. == 200."`
}
}
func dummy() {
fmt.Println("dummy()")
}