ということはひょっとして、

val = 3;
if (val==:val) ・・・

たまたま、:valが”3”に変換されて、このif文が正になることがあるのでしょうか?