On 11/12/10 10:33 AM, bearophile wrote:
Steven Schveighoffer:
If that is invalid code, then I stand corrected. If it compiles, then
it's a serious flaw that is inexcusable.
You need more time to try it on the site that Walter thinks is useless:
http://ideone.com/Ju80U
This Go code:
package main
import "fmt"
func main() {
x := 5
if(x == 6)
{
x++;
}
fmt.Printf("%d\n", x)
}
Produces this compilation error (gc-2010-07-14):
prog.go:7: x == 6 not used
The interactive compiler on the Go site produces the same outcome:
http://golang.org/
Bye,
bearophile
Try this then:
package main
import "fmt"
func blah() bool {
return false
}
func main() {
x := 5
if(blah())
{
x++;
}
fmt.Printf("%d\n", x)
}
which evaluates x++ and prints 6 regardless of blah's result.
Ouch.
So Sean was right - it _did_ take him five minutes to find a fatal flaw.
Andrei