Home | History | Annotate | Download | only in ast

Lines Matching refs:Is

2 // Use of this source code is governed by a BSD-style license that can be
16 // NOTE: If code is marked as being a "shortcut", this means that removing
133 // Take the representation from the first element, which is always
370 DCHECK(AstBitsetType::Is(boundaries[i].internal, boundaries[i].external));
400 // If the range does not touch 0, the bound is empty.
416 DCHECK(Is(AST_SEMANTIC(bits), kNumber));
420 if (Is(AST_SEMANTIC(mins[i].internal), bits)) {
430 DCHECK(Is(AST_SEMANTIC(bits), kNumber));
433 if (AstBitsetType::Is(AST_SEMANTIC(mins[BoundariesSize() - 1].internal),
438 if (Is(AST_SEMANTIC(mins[i].internal), bits)) {
507 return AstBitsetType::Is(this->BitsetLub(), that->AsBitset());
511 return AstBitsetType::Is(this->AsBitset(), that->BitsetGlb());
515 if (!AstBitsetType::Is(Representation(), that->Representation())) {
532 return AstBitsetType::Is(AST_SEMANTIC(this->BitsetLub()), that->AsBitset());
535 return AstBitsetType::Is(AST_SEMANTIC(this->AsBitset()), that->BitsetGlb());
589 // TODO(rossberg): this is incorrect for
601 return this->Is(that);
667 return that->SemanticMaybe(this); // This case is handled above.
694 return AstBitsetType::New(AstBitsetType::Lub(value))->Is(this);
701 // 2. The first element is a bitset, no other element is a bitset.
702 // 3. At most one element is a range, and it must be the second one.
703 // 4. No element is itself a union.
704 // 5. No element (except the bitset) is a subtype of any other.
705 // 6. If there is a range, then the bitset type does not contain
744 if (type1->Is(type2)) return type1;
745 if (type2->Is(type1)) return type2;
756 // Semantic subtyping check - this is needed for consistency with the
784 // If the range is not empty, then insert it into the union and
887 // This case is handled symmetrically above.
903 // If the range is non-empty, the number bits in the bitset should be
915 // If the range is semantically contained within the bitset, return None and
918 if (AstBitsetType::Is(range_lub, *bits)) {
935 // Bitset is contained within the range, just return the range.
959 if (type1->Is(type2)) return type2;
960 if (type2->Is(type1)) return type1;
1008 // Add [type] to [result] unless [type] is bitset, range, or already subsumed.