|
libabigail
|
The abstraction of the diff between two subrange types. More...
#include <abg-comparison.h>
Classes | |
| struct | priv |
| The internal type for the impl idiom implementation of subrange_diff. More... | |
Public Member Functions | |
| virtual void | chain_into_hierarchy () |
| Populate the vector of children node of the diff base type sub-object of this instance of subrange_diff. More... | |
| const array_type_def::subrange_sptr | first_subrange () const |
| Getter of the first subrange of the current instance subrange_diff. More... | |
| virtual const string & | get_pretty_representation () const |
| Getter the pretty representation of the subrange_diff diff node. More... | |
| virtual bool | has_changes () const |
| Test if the current subrange_diff node carries any change. More... | |
| virtual enum change_kind | has_local_changes () const |
| Test if the current subrange_diff node carries any local change. More... | |
| virtual void | report (ostream &, const string &indent="") const |
| Report about the changes carried by this node. More... | |
| const array_type_def::subrange_sptr | second_subrange () const |
| Getter of the second subrange of the current instance subrange_diff. More... | |
| const diff_sptr | underlying_type_diff () const |
| Getter of the diff node of the underlying types of the current subrange_diff diff node. More... | |
| virtual enum change_kind | has_local_changes () const =0 |
| Pure interface to know if the current instance of @diff carries a local change. A local change is a change that is on the diff object itself, as opposed to a change that is carried by some of its children nodes. More... | |
Public Member Functions inherited from diff | |
| diff_category | add_to_category (diff_category c) |
| Adds the current diff tree node to an additional set of categories. Note that the categories include thoses inherited from the children nodes of this diff node. More... | |
| void | add_to_local_and_inherited_categories (diff_category c) |
| Adds the current diff tree node to the categories resulting from the local and inherited changes of the current diff node. More... | |
| diff_category | add_to_local_category (diff_category c) |
| Adds the current diff tree node to the categories resulting from the local changes of the current diff node. More... | |
| void | append_child_node (diff_sptr) |
| Add a new child node to the vector of children nodes for the current diff node. More... | |
| virtual void | chain_into_hierarchy () |
| This constructs the relation between this diff node and its detail diff nodes, in the generic view of the diff node. More... | |
| const vector< diff * > & | children_nodes () const |
| Getter for the children nodes of the current diff node. More... | |
| const diff_context_sptr | context () const |
| Getter of the context of the current diff. More... | |
| void | context (diff_context_sptr c) |
| Setter of the context of the current diff. More... | |
| bool | currently_reporting () const |
| Tests if we are currently in the middle of emitting a report for this diff. More... | |
| void | currently_reporting (bool f) const |
| Sets a flag saying if we are currently in the middle of emitting a report for this diff. More... | |
| type_or_decl_base_sptr | first_subject () const |
| Getter of the first subject of the diff. More... | |
| diff * | get_canonical_diff () const |
| Getter for the canonical diff of the current instance of diff. More... | |
| diff_category | get_category () const |
| Getter for the category of the current diff tree node. More... | |
| diff_category | get_class_of_equiv_category () const |
| Getter of the category of the class of equivalence of the current diff tree node. More... | |
| diff_category | get_local_category () const |
| Getter for the local category of the current diff tree node. More... | |
| virtual const string & | get_pretty_representation () const |
| Get a pretty representation of the current diff node. More... | |
| virtual bool | has_changes () const =0 |
| Pure interface to get the length of the changes encapsulated by this diff. A length of zero means that the current instance of diff doesn't carry any change. More... | |
| bool | has_descendant_allowed_by_specific_negated_suppression () const |
| Test if the current diff node has a descendant node which is specifically allowed by a negated suppression specification. More... | |
| virtual enum change_kind | has_local_changes () const =0 |
| Pure interface to know if the current instance of @diff carries a local change. A local change is a change that is on the diff object itself, as opposed to a change that is carried by some of its children nodes. More... | |
| bool | has_local_changes_to_be_reported () const |
| Test if this diff tree node should be reported when considering the categories that were *NOT* inherited from its children nodes. More... | |
| bool | has_parent_allowed_by_specific_negated_suppression () const |
| Test if the current diff node has a parent node which is specifically allowed by a negated suppression specification. More... | |
| bool | is_allowed_by_specific_negated_suppression () const |
| Test if this diff node is allowed (prevented from being suppressed) by at least one negated suppression specification. More... | |
| bool | is_filtered_out () const |
| Test if this diff tree node is to be filtered out for reporting purposes. More... | |
| bool | is_filtered_out_without_looking_at_allowed_changes () const |
| Test if this diff tree node is to be filtered out for reporting purposes, but without considering the categories that can /force/ the node to be unfiltered. More... | |
| bool | is_filtered_out_wrt_non_inherited_categories () const |
| Test if this diff tree node is to be filtered out for reporting purposes, but by considering only the categories that were *NOT* inherited from its children nodes. More... | |
| bool | is_suppressed () const |
| Test if the current diff node has been suppressed by a user-provided suppression specification. More... | |
| bool | is_suppressed (bool &is_private_type) const |
| Test if the current diff node has been suppressed by a user-provided suppression specification or by an auto-generated "private type" suppression specification. More... | |
| bool | is_traversing () const |
| Tell if a given node is being traversed or not. More... | |
| const diff * | parent_node () const |
| Getter for the parent node of the current diff node. More... | |
| diff_category | remove_from_category (diff_category c) |
| Remove the current diff tree node from an a existing sef of categories. The categories include those inherited from the children nodes of the current diff node. More... | |
| diff_category | remove_from_local_category (diff_category c) |
| Remove the current diff tree node from the categories resulting from the local changes. More... | |
| virtual void | report (ostream &out, const string &indent="") const =0 |
| Pure interface to report the diff in a serialized form that is legible for the user. More... | |
| bool | reported_once () const |
| Tests if a report has already been emitted for the current diff. More... | |
| void | reported_once (bool f) const |
| Sets a flag saying if a report has already been emitted for the current diff. More... | |
| type_or_decl_base_sptr | second_subject () const |
| Getter of the second subject of the diff. More... | |
| void | set_category (diff_category c) |
| Set the category of the current diff node. This category includes the categories inherited from the children nodes of the current diff node. More... | |
| void | set_local_category (diff_category c) |
| Set the local category of the current diff node. More... | |
| bool | to_be_reported () const |
| Test if this diff tree node should be reported. More... | |
| virtual bool | traverse (diff_node_visitor &v) |
| The generic traversing code that walks a given diff sub-tree. More... | |
| virtual bool | traverse (diff_node_visitor &v) |
| The default traverse function. More... | |
Public Member Functions inherited from traversable_base | |
| virtual | ~traversable_base () |
| Destructor of the traversable_base type. More... | |
Protected Member Functions | |
| subrange_diff (const array_type_def::subrange_sptr &first, const array_type_def::subrange_sptr &second, const diff_sptr &underlying_type_diff, const diff_context_sptr ctxt=diff_context_sptr()) | |
| Constructor of the subrange_diff diff node type. More... | |
Protected Member Functions inherited from type_diff_base | |
| type_diff_base (type_base_sptr first_subject, type_base_sptr second_subject, diff_context_sptr ctxt) | |
Protected Member Functions inherited from diff | |
| diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject) | |
| Constructor for the diff type. More... | |
| diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject, diff_context_sptr ctxt) | |
| Constructor for the diff type. More... | |
| void | begin_traversing () |
| Flag a given diff node as being traversed. More... | |
| bool | do_log () const |
| Test if logging was requested. More... | |
| void | do_log (bool) |
| Request logging (or not) More... | |
| void | end_traversing () |
| Flag a given diff node as not being traversed anymore. More... | |
| virtual void | finish_diff_type () |
| Finish the insertion of a diff tree node into the diff graph. More... | |
| void | set_canonical_diff (diff *) |
| Setter for the canonical diff of the current instance of diff. More... | |
Protected Member Functions inherited from traversable_base | |
| traversable_base () | |
| Default constructor of the traversable_base type. More... | |
| bool | visiting () const |
| This should returns false before and after the node has been visiting. During the visiting of the node (and of its children) this should return true. More... | |
| void | visiting (bool f) |
| The traversing code should be responsible of calling this, not the user code. More... | |
Friends | |
| subrange_diff_sptr | compute_diff (array_type_def::subrange_sptr first, array_type_def::subrange_sptr second, diff_context_sptr ctxt) |
| Compute the diff between two instances of subrange_diff. More... | |
Additional Inherited Members | |
Protected Attributes inherited from diff | |
| std::unique_ptr< priv > | priv_ |
The abstraction of the diff between two subrange types.
Definition at line 1494 of file abg-comparison.h.
|
protected |
Constructor of the subrange_diff diff node type.
| first | the first subrange type to consider for the diff. |
| second | the second subrange type to consider for the diff. |
| underlying_type_diff | the underlying type diff between first and second. |
| ctxt | the diff context to use. |
Definition at line 3824 of file abg-comparison.cc.
|
virtual |
Populate the vector of children node of the diff base type sub-object of this instance of subrange_diff.
The children node can then later be retrieved using diff::children_node().
Reimplemented from diff.
Definition at line 3917 of file abg-comparison.cc.
| const array_type_def::subrange_sptr first_subrange | ( | ) | const |
Getter of the first subrange of the current instance subrange_diff.
Definition at line 3839 of file abg-comparison.cc.
|
virtual |
Getter the pretty representation of the subrange_diff diff node.
Reimplemented from diff.
Definition at line 3865 of file abg-comparison.cc.
|
virtual |
Test if the current subrange_diff node carries any change.
Implements diff.
Definition at line 3885 of file abg-comparison.cc.
|
virtual |
Test if the current subrange_diff node carries any local change.
Implements type_diff_base.
Definition at line 3894 of file abg-comparison.cc.
|
virtual |
Report about the changes carried by this node.
| out | the output stream to send the report to. |
| indent | the indentation string to use. |
Implements diff.
Definition at line 3908 of file abg-comparison.cc.
| const array_type_def::subrange_sptr second_subrange | ( | ) | const |
Getter of the second subrange of the current instance subrange_diff.
Definition at line 3848 of file abg-comparison.cc.
| const diff_sptr underlying_type_diff | ( | ) | const |
Getter of the diff node of the underlying types of the current subrange_diff diff node.
Definition at line 3857 of file abg-comparison.cc.
|
friend |
Compute the diff between two instances of subrange_diff.
Note that the two decls must have been created in the same environment, otherwise, this function aborts.
| first | the first subrange_diff to consider for the diff. |
| second | the second subrange_diff to consider for the diff. |
| ctxt | the diff context to use. |
Definition at line 3933 of file abg-comparison.cc.