qapi: Improve error message for unexpected array types
authorMarkus Armbruster <armbru@redhat.com>
Thu, 16 Mar 2023 07:13:16 +0000 (08:13 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 24 Apr 2023 13:21:39 +0000 (15:21 +0200)
We reject array types in certain places with "cannot be an array".
Deleting this check improves the error message to "should be a type
name" or "should be an object or type name", depending on context, so
do that.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20230316071325.492471-6-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
scripts/qapi/expr.py
tests/qapi-schema/bad-data.err
tests/qapi-schema/union-array-branch.err

index bc04bf34c285298e35a7adeb485802926c7dd998..5abeaa19dd2aa5dcdc1b47e22c653f3077993a15 100644 (file)
@@ -341,9 +341,6 @@ def check_type_name(value: Optional[object],
     if isinstance(value, str):
         return
 
-    if isinstance(value, list):
-        raise QAPISemError(info, "%s cannot be an array" % source)
-
     raise QAPISemError(info, "%s should be a type name" % source)
 
 
@@ -392,9 +389,6 @@ def check_type_name_or_implicit(value: Optional[object],
     if isinstance(value, str):
         return
 
-    if isinstance(value, list):
-        raise QAPISemError(info, "%s cannot be an array" % source)
-
     if not isinstance(value, dict):
         raise QAPISemError(info,
                            "%s should be an object or type name" % source)
index 7991c8898def0ca2dff96dbbf304367d3dce1d35..a987df4108c95ef10e31af09dfa3792fa1623991 100644 (file)
@@ -1,2 +1,2 @@
 bad-data.json: In command 'oops':
-bad-data.json:2: 'data' cannot be an array
+bad-data.json:2: 'data' should be an object or type name
index 5db9c17481137359c97e8ea79e78ede35efccaf6..2aa146261a2dd2e06e8ea3a6ea09fdb446200383 100644 (file)
@@ -1,2 +1,2 @@
 union-array-branch.json: In union 'TestUnion':
-union-array-branch.json:8: 'data' member 'value1' cannot be an array
+union-array-branch.json:8: 'data' member 'value1' should be a type name