diff -r 28697d267222 -r a9665857cfd5 jitcraft/SemanticAnalysis.cpp --- a/jitcraft/SemanticAnalysis.cpp Mon Jul 02 14:04:29 2012 -0700 +++ b/jitcraft/SemanticAnalysis.cpp Mon Jul 02 23:37:12 2012 -0700 @@ -20,6 +20,7 @@ #include "Zone.h" #include "TypeManager.h" #include "Scopes.h" +#include "Heap-inl.h" using namespace jc; @@ -47,9 +48,10 @@ case TOK_SHL: *out = BoxedPrimitive::Int(left.toInt() << right.toInt()); return true; + + default: + return false; } - - return true; } static bool @@ -199,7 +201,7 @@ Type *floatType = left->isFloat() ? left : right; Type *other = left->isFloat() ? right : left; if (other->isFloat() || (other->isInt32() && !other->tag())) - return other; + return floatType; } }