Lines Matching refs:Recursive

6366 ///   Recursive:      The type encoding is recursive;
6369 /// Recursive type encoding.
6376 /// A Recursive entry will have all of its sub-members expanded as fully as
6378 /// are recursive. The Recursive encoding must not be used during the expansion
6380 /// IncompleteCount to reject all usage of Recursive encodings for member types.
6393 /// If the cache contains a Recursive encoding for the member type, the
6400 /// entry is removed from the cache. If a Recursive encoding was swapped out
6407 /// If a member's encoding is found to be a NonRecursive or Recursive viz:
6413 enum Status {NonRecursive, Recursive, Incomplete, IncompleteUsed};
6417 std::string Swapped; // A temporary place holder for a Recursive encoding
6515 /// If there is a Recursive encoding in the cache, it is swapped out and will
6523 assert( (E.Str.empty() || E.State == Recursive) &&
6526 E.Swapped.swap(E.Str); // swap out the Recursive
6534 /// If a Recursive was swapped out by addIncomplete(), it will be replaced.
6554 // Swap the Recursive back.
6557 E.State = Recursive;
6564 /// Recursive (viz: all sub-members were expanded as fully as possible).
6571 assert(E.State==Recursive && E.Str.size() == Str.size() &&
6572 "This is not the same Recursive entry");
6574 // this Recursive sub-member entry after all, but we assumed the worse when
6580 E.State = IsRecursive? Recursive : NonRecursive;
6585 /// encoding is Recursive, return an empty StringRef.
6593 if (E.State == Recursive && IncompleteCount)
6594 return StringRef(); // We don't use Recursive encodings for member types.