From: Robert Griesemer
-Comparison operators compare two operands and yield a boolean value.
+Comparison operators compare two operands and yield an untyped boolean value.
x < x + 1
is alw
Comparison operators
@@ -3216,20 +3216,17 @@ Comparison of pointer, channel, and interface values to
nil
is also allowed and follows from the general rules above.
-The result of a comparison can be assigned to any boolean type.
-If the context does not demand a specific boolean type,
-the result has type bool
.
-
-type MyBool bool +const c = 3 < 4 // c is the untyped bool constant true +type MyBool bool var x, y int var ( - b1 MyBool = x == y // result of comparison has type MyBool - b2 bool = x == y // result of comparison has type bool - b3 = x == y // result of comparison has type bool + // The result of a comparison is an untyped bool. + // The usual assignment rules apply. + b3 = x == y // b3 has type bool + b4 bool = x == y // b4 has type bool + b5 MyBool = x == y // b5 has type MyBool )