The same expression twice gets different results
code:
import std.stdio;
bool Fn(float i){ return true; }
const bool b = Fn(cast(int)0);
static if(b) bool Fn(int i){ return false; }
const bool c = Fn(cast(int)0);
void main()
{
writef("%s\n", b);
writef("%s\n", c);
}
output:
true
false