[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 26/27] qapi: Improve reporting of redefinition
From: |
Markus Armbruster |
Subject: |
[PULL 26/27] qapi: Improve reporting of redefinition |
Date: |
Sat, 28 Sep 2019 20:39:33 +0200 |
Point to the previous definition, unless it's a built-in.
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
---
scripts/qapi/common.py | 5 +++++
tests/qapi-schema/redefined-command.err | 4 +++-
tests/qapi-schema/redefined-event.err | 4 +++-
tests/qapi-schema/redefined-type.err | 4 +++-
4 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index bd834270f8..a74cd957d4 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -1759,6 +1759,11 @@ class QAPISchema(object):
# because they're liable to clash in generated C.
other_ent = self._entity_dict.get(ent.name)
if other_ent:
+ if other_ent.info:
+ where = QAPIError(other_ent.info, None, "previous definition")
+ raise QAPISemError(
+ ent.info,
+ "'%s' is already defined\n%s" % (ent.name, where))
raise QAPISemError(
ent.info, "%s is already defined" % other_ent.describe())
self._entity_dict[ent.name] = ent
diff --git a/tests/qapi-schema/redefined-command.err
b/tests/qapi-schema/redefined-command.err
index b77a05d354..54e366bbf3 100644
--- a/tests/qapi-schema/redefined-command.err
+++ b/tests/qapi-schema/redefined-command.err
@@ -1,2 +1,4 @@
tests/qapi-schema/redefined-command.json: In command 'foo':
-tests/qapi-schema/redefined-command.json:3: command 'foo' is already defined
+tests/qapi-schema/redefined-command.json:3: 'foo' is already defined
+tests/qapi-schema/redefined-command.json: In command 'foo':
+tests/qapi-schema/redefined-command.json:2: previous definition
diff --git a/tests/qapi-schema/redefined-event.err
b/tests/qapi-schema/redefined-event.err
index fd02d38157..606c6e4497 100644
--- a/tests/qapi-schema/redefined-event.err
+++ b/tests/qapi-schema/redefined-event.err
@@ -1,2 +1,4 @@
tests/qapi-schema/redefined-event.json: In event 'EVENT_A':
-tests/qapi-schema/redefined-event.json:3: event 'EVENT_A' is already defined
+tests/qapi-schema/redefined-event.json:3: 'EVENT_A' is already defined
+tests/qapi-schema/redefined-event.json: In event 'EVENT_A':
+tests/qapi-schema/redefined-event.json:2: previous definition
diff --git a/tests/qapi-schema/redefined-type.err
b/tests/qapi-schema/redefined-type.err
index 39f51c14ea..77786f98ae 100644
--- a/tests/qapi-schema/redefined-type.err
+++ b/tests/qapi-schema/redefined-type.err
@@ -1,2 +1,4 @@
tests/qapi-schema/redefined-type.json: In enum 'foo':
-tests/qapi-schema/redefined-type.json:3: struct type 'foo' is already defined
+tests/qapi-schema/redefined-type.json:3: 'foo' is already defined
+tests/qapi-schema/redefined-type.json: In struct 'foo':
+tests/qapi-schema/redefined-type.json:2: previous definition
--
2.21.0
- [PULL 23/27] qapi: Improve reporting of invalid 'if' further, (continued)
- [PULL 23/27] qapi: Improve reporting of invalid 'if' further, Markus Armbruster, 2019/09/28
- [PULL 17/27] qapi: Move context-sensitive checking to the proper place, Markus Armbruster, 2019/09/28
- [PULL 03/27] qapi: Rename .owner to .defined_in, Markus Armbruster, 2019/09/28
- [PULL 04/27] qapi: New QAPISourceInfo, replacing dict, Markus Armbruster, 2019/09/28
- [PULL 16/27] qapi: Inline check_name() into check_union(), Markus Armbruster, 2019/09/28
- [PULL 06/27] qapi: Clean up member name case checking, Markus Armbruster, 2019/09/28
- [PULL 12/27] qapi: Report invalid '*' prefix like any other invalid name, Markus Armbruster, 2019/09/28
- [PULL 25/27] qapi: Improve reporting of missing documentation comment, Markus Armbruster, 2019/09/28
- [PULL 09/27] qapi: Reorder check_FOO() parameters for consistency, Markus Armbruster, 2019/09/28
- [PULL 08/27] qapi: Improve reporting of member name clashes, Markus Armbruster, 2019/09/28
- [PULL 26/27] qapi: Improve reporting of redefinition,
Markus Armbruster <=
- [PULL 15/27] qapi: Plumb info to the QAPISchemaMember, Markus Armbruster, 2019/09/28
- [PULL 05/27] qapi: Prefix frontend errors with an "in definition" line, Markus Armbruster, 2019/09/28
- [PULL 22/27] qapi: Avoid redundant definition references in error messages, Markus Armbruster, 2019/09/28
- [PULL 07/27] qapi: Change frontend error messages to start with lower case, Markus Armbruster, 2019/09/28
- Re: [PULL 00/27] QAPI patches for 2019-09-28, Peter Maydell, 2019/09/30