Index: src/types.cc |
diff --git a/src/types.cc b/src/types.cc |
index 9716686f25f1a4a285a8b6b4cf6bfd7f277a7128..17a19b29e4263ac4ef2907c0c9ba45d62baa4cf5 100644 |
--- a/src/types.cc |
+++ b/src/types.cc |
@@ -240,6 +240,7 @@ int Type::GlbBitset() { |
// Check this <= that. |
bool Type::SlowIs(Type* that) { |
// Fast path for bitsets. |
+ if (this->is_none()) return true; |
if (that->is_bitset()) { |
return (this->LubBitset() | that->as_bitset()) == that->as_bitset(); |
} |
@@ -526,9 +527,13 @@ void Type::TypePrint(FILE* out) { |
} |
PrintF(out, "}"); |
} else if (is_constant()) { |
- PrintF(out, "Constant(%p)", static_cast<void*>(*as_constant())); |
+ PrintF(out, "Constant(%p : ", static_cast<void*>(*as_constant())); |
+ from_bitset(LubBitset())->TypePrint(out); |
+ PrintF(")"); |
} else if (is_class()) { |
- PrintF(out, "Class(%p)", static_cast<void*>(*as_class())); |
+ PrintF(out, "Class(%p < ", static_cast<void*>(*as_class())); |
+ from_bitset(LubBitset())->TypePrint(out); |
+ PrintF(")"); |
} else if (is_union()) { |
PrintF(out, "{"); |
Handle<Unioned> unioned = as_union(); |