mirror of git://gcc.gnu.org/git/gcc.git
This patch eliminates class fixit_remove, reimplementing
rich_location::add_fixit_remove in terms of replacement with the
empty string. Deleting the removal subclass simplifies
fixit-handling code, as we only have two concrete fixit_hint
subclasses to deal with, rather than three.
The patch also fixes some problems in diagnostic-show-locus.c for
situations where a replacement fix-it has a different range to the
range of the diagnostic, by unifying the drawing of the two kinds of
fixits. For example, this:
foo = bar.field;
^
m_field
becomes:
foo = bar.field;
^
-----
m_field
showing the range to be replaced.
gcc/ChangeLog:
* diagnostic-show-locus.c
(layout::annotation_line_showed_range_p): New method.
(layout::print_any_fixits): Remove case fixit_hint::REMOVE.
Reimplement case fixit_hint::REPLACE to cover removals, and
replacements where the range of the replacement isn't one
of the ranges in the rich_location.
(test_one_liner_fixit_replace): Likewise.
(selftest::test_one_liner_fixit_replace_non_equal_range): New
function.
(selftest::test_one_liner_fixit_replace_equal_secondary_range):
New function.
(selftest::test_diagnostic_show_locus_one_liner): Call the new
functions.
* diagnostic.c (print_parseable_fixits): Remove case
fixit_hint::REMOVE.
libcpp/ChangeLog:
* include/line-map.h (fixit_hint::kind): Delete REPLACE.
(class fixit_remove): Delete.
* line-map.c (rich_location::add_fixit_remove): Reimplement
by calling add_fixit_replace with an empty string.
(fixit_remove::fixit_remove): Delete.
(fixit_remove::affects_line_p): Delete.
From-SVN: r239632
|
||
|---|---|---|
| .. | ||
| include | ||
| po | ||
| ChangeLog | ||
| ChangeLog.jit | ||
| Makefile.in | ||
| aclocal.m4 | ||
| charset.c | ||
| config.in | ||
| configure | ||
| configure.ac | ||
| directives-only.c | ||
| directives.c | ||
| errors.c | ||
| expr.c | ||
| files.c | ||
| identifiers.c | ||
| init.c | ||
| internal.h | ||
| lex.c | ||
| line-map.c | ||
| location-example.txt | ||
| macro.c | ||
| makeucnid.c | ||
| mkdeps.c | ||
| pch.c | ||
| symtab.c | ||
| system.h | ||
| traditional.c | ||
| ucnid.h | ||
| ucnid.tab | ||