aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include/line-map.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/include/line-map.h')
-rw-r--r--libcpp/include/line-map.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
index 90d65d7..be3041d 100644
--- a/libcpp/include/line-map.h
+++ b/libcpp/include/line-map.h
@@ -1663,6 +1663,27 @@ class rich_location
fixit_hint *get_last_fixit_hint () const;
bool seen_impossible_fixit_p () const { return m_seen_impossible_fixit; }
+ /* Set this if the fix-it hints are not suitable to be
+ automatically applied.
+
+ For example, if you are suggesting more than one
+ mutually exclusive solution to a problem, then
+ it doesn't make sense to apply all of the solutions;
+ manual intervention is required.
+
+ If set, then the fix-it hints in the rich_location will
+ be printed, but will not be added to generated patches,
+ or affect the modified version of the file. */
+ void fixits_cannot_be_auto_applied ()
+ {
+ m_fixits_cannot_be_auto_applied = true;
+ }
+
+ bool fixits_can_be_auto_applied_p () const
+ {
+ return !m_fixits_cannot_be_auto_applied;
+ }
+
private:
bool reject_impossible_fixit (source_location where);
void stop_supporting_fixits ();
@@ -1686,6 +1707,7 @@ protected:
semi_embedded_vec <fixit_hint *, MAX_STATIC_FIXIT_HINTS> m_fixit_hints;
bool m_seen_impossible_fixit;
+ bool m_fixits_cannot_be_auto_applied;
};
/* A fix-it hint: a suggested insertion, replacement, or deletion of text.