Lines Matching defs:Maybe

389     CHECK(type1->Maybe(type2));
390 CHECK(type2->Maybe(type1));
396 CHECK(!type1->Maybe(type2));
397 CHECK(!type2->Maybe(type1));
738 // If Constant(V)->Is(T), then Of(V)->Is(T) or T->Maybe(Constant(V))
746 of_type->Is(type) || type->Maybe(const_type));
780 // then NowOf(V)->NowIs(T) or T->Maybe(Constant(V))
788 nowof_type->NowIs(type) || type->Maybe(const_type));
793 // then NowOf(V)->Is(T) or T->Maybe(Constant(V))
801 nowof_type->Is(type) || type->Maybe(const_type));
1248 void Maybe() {
1249 // T->Maybe(Any) iff T inhabited
1252 CHECK(type->Maybe(T.Any) == type->IsInhabited());
1255 // T->Maybe(None) never
1258 CHECK(!type->Maybe(T.None));
1261 // Reflexivity upto Inhabitation: T->Maybe(T) iff T inhabited
1264 CHECK(type->Maybe(type) == type->IsInhabited());
1267 // Symmetry: T1->Maybe(T2) iff T2->Maybe(T1)
1272 CHECK(type1->Maybe(type2) == type2->Maybe(type1));
1276 // T1->Maybe(T2) implies T1, T2 inhabited
1281 CHECK(!type1->Maybe(type2) ||
1286 // T1->Maybe(T2) implies Intersect(T1, T2) inhabited
1292 CHECK(!type1->Maybe(type2) || intersect12->IsInhabited());
1296 // T1->Is(T2) and T1 inhabited implies T1->Maybe(T2)
1302 type1->Maybe(type2));
1306 // Constant(V1)->Maybe(Constant(V2)) iff V1 = V2
1313 CHECK(const_type1->Maybe(const_type2) == (*value1 == *value2));
1317 // Class(M1)->Maybe(Class(M2)) iff M1 = M2
1324 CHECK(class_type1->Maybe(class_type2) == (*map1 == *map2));
1328 // Constant(V)->Maybe(Class(M)) never
1337 CHECK(!const_type->Maybe(class_type));
1342 // Class(M)->Maybe(Constant(V)) never
1351 CHECK(!class_type->Maybe(const_type));
2057 TEST(Maybe) {
2059 ZoneTests().Maybe();
2060 HeapTests().Maybe();