diff mbox series

[09/19] qapi/schema: assert info is present when necessary

Message ID 20231116014350.653792-10-jsnow@redhat.com (mailing list archive)
State New, archived
Headers show
Series qapi: statically type schema.py | expand

Commit Message

John Snow Nov. 16, 2023, 1:43 a.m. UTC
QAPISchemaInfo is sometimes defined as an Optional field because
built-in definitions don't *have* a source definition. As a consequence,
there are a few places where we need to assert that it's present because
the root entity definition only suggests it's "Optional".

Signed-off-by: John Snow <jsnow@redhat.com>
---
 scripts/qapi/schema.py | 2 ++
 1 file changed, 2 insertions(+)

Comments

Philippe Mathieu-Daudé Nov. 16, 2023, 7:05 a.m. UTC | #1
On 16/11/23 02:43, John Snow wrote:
> QAPISchemaInfo is sometimes defined as an Optional field because
> built-in definitions don't *have* a source definition. As a consequence,
> there are a few places where we need to assert that it's present because
> the root entity definition only suggests it's "Optional".
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   scripts/qapi/schema.py | 2 ++
>   1 file changed, 2 insertions(+)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff mbox series

Patch

diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 3308f334872..c9a194103e1 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -733,6 +733,7 @@  def describe(self, info):
             else:
                 assert False
 
+        assert info is not None
         if defined_in != info.defn_name:
             return "%s '%s' of %s '%s'" % (role, self.name, meta, defined_in)
         return "%s '%s'" % (role, self.name)
@@ -823,6 +824,7 @@  def __init__(self, name, info, doc, ifcond, features,
         self.coroutine = coroutine
 
     def check(self, schema):
+        assert self.info is not None
         super().check(schema)
         if self._arg_type_name:
             arg_type = schema.resolve_type(