[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 12/12] diagnostics: add fixit support for duplicate removal
From: |
Akim Demaille |
Subject: |
[PATCH 12/12] diagnostics: add fixit support for duplicate removal |
Date: |
Sun, 13 Jan 2019 15:24:06 +0100 |
* src/muscle-tab.c (muscle_percent_define_insert): Register a fixit
for duplicate removal.
* tests/input.at: Adjust expectations.
---
src/muscle-tab.c | 2 ++
tests/input.at | 13 +++----------
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
index 9170c752..618e4d5f 100644
--- a/src/muscle-tab.c
+++ b/src/muscle-tab.c
@@ -24,6 +24,7 @@
#include "complain.h"
#include "files.h"
+#include "fixits.h"
#include "getargs.h"
#include "muscle-tab.h"
#include "quote.h"
@@ -532,6 +533,7 @@ muscle_percent_define_insert (char const *var, location
variable_loc,
i += SUB_INDENT;
location loc = muscle_percent_define_get_loc (variable);
complain_indent (&loc, complaint, &i, _("previous definition"));
+ fixits_register (&variable_loc, "");
warned = true;
}
diff --git a/tests/input.at b/tests/input.at
index f6b68d5e..40ba92bd 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -2539,6 +2539,7 @@ input.y:26.1-12: warning: deprecated directive:
'%token_table', use '%token-tabl
fix-it:"input.y":{26:1-26:13}:"%token-table"
input.y:27.1-14: error: %define variable 'parse.error' redefined
input.y:11.1-14: previous definition
+fix-it:"input.y":{27:1-27:15}:""
input.y:29.1-18: warning: deprecated directive: '%name-prefix "bar"', use
'%define api.prefix {bar}' [-Wdeprecated]
fix-it:"input.y":{29:1-29:19}:"%define api.prefix {bar}"
]])
@@ -2585,23 +2586,15 @@ AT_CHECK([cat input.y], [],
%output "foo"
%pure-parser
%token-table
-%error-verbose
+
%glr-parser
%define api.prefix {bar}
%%
exp : '0'
]])
-# Unfortunately so far we don't remove duplicate definitions,
-# so there are still warnings.
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [],
-[[input.y:26.1-14: error: %define variable 'parse.error' redefined
- %error-verbose
- ^~~~~~~~~~~~~~
-input.y:11.1-27: previous definition
- %define parse.error verbose
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~
-input.y:28.1-24: error: %define variable 'api.prefix' redefined
+[[input.y:28.1-24: error: %define variable 'api.prefix' redefined
%define api.prefix {bar}
^~~~~~~~~~~~~~~~~~~~~~~~
input.y:19.1-24: previous definition
--
2.20.1
- [PATCH 00/12] RFC: fixits and --update, Akim Demaille, 2019/01/13
- [PATCH 12/12] diagnostics: add fixit support for duplicate removal,
Akim Demaille <=
- [PATCH 01/12] diagnostics: style: avoid allocating memory when not needed, Akim Demaille, 2019/01/13
- [PATCH 02/12] diagnostics: improve them for %name-prefix, Akim Demaille, 2019/01/13
- [PATCH 09/12] diagnostics: avoid duplicate warnings for deprecated directives, Akim Demaille, 2019/01/13
- [PATCH 10/12] diagnostics: improve the accuracy for %error-verbose, Akim Demaille, 2019/01/13
- [PATCH 06/12] diagnostics: keep the fixits, Akim Demaille, 2019/01/13
- [PATCH 04/12] diagnostics: prefer ^~~~ to ^^^^ to underline code, Akim Demaille, 2019/01/13
- [PATCH 05/12] diagnostics: add -ffixit support for deprecated features, Akim Demaille, 2019/01/13
- [PATCH 08/12] diagnostics: update the grammar file, Akim Demaille, 2019/01/13
- [PATCH 07/12] diagnostics: improve accuracy for deprecated %define variables, Akim Demaille, 2019/01/13