On Fri, Mar 15, 2024, 11:24 AM Markus Armbruster <arm...@redhat.com> wrote:
> QAPISchema.lookup_type('FOO') returns a QAPISchemaType when type 'FOO' > exists, else None. It won't return None for built-in types like > 'int'. > > Since mypy can't see that, it'll complain that we assign the > Optional[QAPISchemaType] returned by .lookup_type() to QAPISchemaType > variables. > > Add assertions to help it over the hump. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > scripts/qapi/introspect.py | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py > index 67c7d89aae..4679b1bc2c 100644 > --- a/scripts/qapi/introspect.py > +++ b/scripts/qapi/introspect.py > @@ -227,10 +227,14 @@ def _use_type(self, typ: QAPISchemaType) -> str: > > # Map the various integer types to plain int > if typ.json_type() == 'int': > - typ = self._schema.lookup_type('int') > + type_int = self._schema.lookup_type('int') > + assert type_int > + typ = type_int > elif (isinstance(typ, QAPISchemaArrayType) and > typ.element_type.json_type() == 'int'): > - typ = self._schema.lookup_type('intList') > + type_intList = self._schema.lookup_type('intList') > + assert type_intList > + typ = type_intList > # Add type to work queue if new > if typ not in self._used_types: > self._used_types.append(typ) > -- > 2.44.0 > Yeah, if you like this more, go ahead. I know it works because I did it this way at one point! Matter of taste and preference etc. Reviewed-by: John Snow <js...@redhat.com> >