[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 24/25] qapi: Improve reporting of redefinition
From: |
Markus Armbruster |
Subject: |
[PATCH 24/25] qapi: Improve reporting of redefinition |
Date: |
Tue, 24 Sep 2019 15:28:29 +0200 |
Point to the previous definition, unless it's a built-in.
Signed-off-by: Markus Armbruster <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 29b75345bb..c38e7cf27d 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -1748,6 +1748,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
- Re: [PATCH 03/25] qapi: New QAPISourceInfo, replacing dict, (continued)
- [PATCH 02/25] qapi: Rename .owner to .defined_in, Markus Armbruster, 2019/09/24
- [PATCH 10/25] qapi: Use check_name_str() where it suffices, Markus Armbruster, 2019/09/24
- [PATCH 17/25] qapi: Move context-free checking to the proper place, Markus Armbruster, 2019/09/24
- [PATCH 11/25] qapi: Report invalid '*' prefix like any other invalid name, Markus Armbruster, 2019/09/24
- [PATCH 24/25] qapi: Improve reporting of redefinition,
Markus Armbruster <=
- [PATCH 15/25] qapi: Inline check_name() into check_union(), Markus Armbruster, 2019/09/24
- [PATCH 07/25] qapi: Improve reporting of member name clashes, Markus Armbruster, 2019/09/24
- [PATCH 13/25] qapi: Make check_type()'s array case a bit more obvious, Markus Armbruster, 2019/09/24
- [PATCH 18/25] qapi: Improve reporting of invalid 'if' errors, Markus Armbruster, 2019/09/24
- [PATCH 12/25] qapi: Move check for reserved names out of add_name(), Markus Armbruster, 2019/09/24