Lines Matching refs:canonical
183 // The data member below holds the canonical type that is managed by
196 // canonicalization. They are useful for the "canonical type
200 // The set of canonical recursive types this type depends on.
292 /// Test if the type carries a canonical type that is the result of
293 /// maybe_propagate_canonical_type(), aka, "canonical type
296 /// @return true iff the current type carries a canonical type that
297 /// is the result of canonical type propagation.
302 /// Set the flag that says if the type carries a canonical type that
304 /// "canonical type propagation optimization".
306 /// @param f true iff the current type carries a canonical type that
307 /// is the result of canonical type propagation.
312 /// Getter of the property propagated-canonical-type-confirmed.
315 /// says if the propagated canonical type has been confirmed or not.
319 /// @return true iff the propagated canonical type has been
325 /// Setter of the property propagated-canonical-type-confirmed.
328 /// says if the propagated canonical type has been confirmed or not.
332 /// @param f If this is true then the propagated canonical type has
338 /// If the current canonical type was set as the result of the
339 /// "canonical type propagation optimization", then clear it.
445 // Vector of types that protentially received propagated canonical types.
446 // If the canonical type propagation is confirmed, the potential
447 // canonical types must be promoted as canonical types. Otherwise if
448 // the canonical type propagation is cancelled, the canonical types
466 // an abixml (canonical) type and its type-id.
482 // This controls whether to use canonical type comparison during
484 // want to ensure that comparing types using canonical or structural
489 // potential canonical type twice: The first time with canonical
696 /// eligible for the canonical type propagation optimization.
700 /// the canonical type propagation optimization.
704 /// non-eligible to the canonical type propagation optimization.
729 /// certain one as NOT being eligible to the canonical type
733 /// OnTheFlyCanonicalization, aka, "canonical type propagation
744 /// The reason why a type is deemed NON-eligible to the canonical
777 /// to being the target of canonical type propagation.
814 /// Propagate the canonical type of a type to another one.
816 /// @param src the type to propagate the canonical type from.
818 /// @param dest the type to propagate the canonical type of @p src
821 /// @return bool iff the canonical was propagated.
825 type_base_sptr canonical = src.get_canonical_type();
826 ABG_ASSERT(canonical);
827 dest.priv_->canonical_type = canonical;
828 dest.priv_->naked_canonical_type = canonical.get();
833 /// Mark a set of types that have been the target of canonical type
838 /// type canonicalization and especially about the "canonical type
862 /// Mark a type that has been the target of canonical type
866 /// target of canonical type propagation and that depend on a
870 /// type canonicalization and especially about the "canonical type
888 /// Mark all the types that have been the target of canonical type
893 /// type canonicalization and especially about the "canonical type
946 /// Reset the canonical type (set it nullptr) of a set of types that
947 /// have been the target of canonical type propagation and that
950 /// Once the canonical type of a type in that set is reset, the type
954 /// of type canonicalization and especially about the "canonical
958 /// @param target if a type which has been subject to the canonical
960 /// cancel its canonical type.
974 type_base_sptr canonical = t->priv_->canonical_type.lock();
975 if (canonical)
986 /// Reset the canonical type (set it nullptr) of a type that has
987 /// been the target of canonical type propagation.
989 /// This also resets the propagated canonical type of the set of
992 /// Once the canonical type of a type in that set is reset, the type
996 /// of type canonicalization and especially about the "canonical
1000 /// @param target if a type which has been subject to the canonical
1002 /// cancel its canonical type.
1014 // This cannot carry any tentative canonical type at this
1020 // tentative canonical type that might be later cancelled.
1027 /// non-confirmed subjects of the canonical type propagation
1039 /// non-confirmed subjects of the canonical type propagation
1052 /// de-serialized from abixml has the same canonical type as the
1058 /// @param c the canonical type @p t should have.
1060 /// @return true iff @p c is the canonical type that @p t should
1084 // Get the canonical type the original in-memory type (constructed
1098 // We want to ensure that the canonical type 'c' of 't' is the
1099 // same as the canonical type of initial in-memory type (built
1109 /// de-serialized from abixml has the same canonical type as the
1115 /// @param c the canonical type @p t should have.
1117 /// @return true iff @p c is the canonical type that @p t should