mirror of https://github.com/xemu-project/xemu.git
qapi/schema: adjust type narrowing for mypy's benefit
We already take care to perform some type narrowing for arg_type and ret_type, but not in a way where mypy can utilize the result once we add type hints, e.g.: qapi/schema.py:833: error: Incompatible types in assignment (expression has type "QAPISchemaType", variable has type "Optional[QAPISchemaObjectType]") [assignment] qapi/schema.py:893: error: Incompatible types in assignment (expression has type "QAPISchemaType", variable has type "Optional[QAPISchemaObjectType]") [assignment] A simple change to use a temporary variable helps the medicine go down. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-ID: <20240315152301.3621858-10-armbru@redhat.com>
This commit is contained in:
parent
d150be3d54
commit
9bda6c7d11
|
@ -843,13 +843,14 @@ class QAPISchemaCommand(QAPISchemaDefinition):
|
|||
def check(self, schema):
|
||||
super().check(schema)
|
||||
if self._arg_type_name:
|
||||
self.arg_type = schema.resolve_type(
|
||||
arg_type = schema.resolve_type(
|
||||
self._arg_type_name, self.info, "command's 'data'")
|
||||
if not isinstance(self.arg_type, QAPISchemaObjectType):
|
||||
if not isinstance(arg_type, QAPISchemaObjectType):
|
||||
raise QAPISemError(
|
||||
self.info,
|
||||
"command's 'data' cannot take %s"
|
||||
% self.arg_type.describe())
|
||||
% arg_type.describe())
|
||||
self.arg_type = arg_type
|
||||
if self.arg_type.variants and not self.boxed:
|
||||
raise QAPISemError(
|
||||
self.info,
|
||||
|
@ -866,8 +867,8 @@ class QAPISchemaCommand(QAPISchemaDefinition):
|
|||
if self.name not in self.info.pragma.command_returns_exceptions:
|
||||
typ = self.ret_type
|
||||
if isinstance(typ, QAPISchemaArrayType):
|
||||
typ = self.ret_type.element_type
|
||||
assert typ
|
||||
typ = typ.element_type
|
||||
if not isinstance(typ, QAPISchemaObjectType):
|
||||
raise QAPISemError(
|
||||
self.info,
|
||||
|
@ -903,13 +904,14 @@ class QAPISchemaEvent(QAPISchemaDefinition):
|
|||
def check(self, schema):
|
||||
super().check(schema)
|
||||
if self._arg_type_name:
|
||||
self.arg_type = schema.resolve_type(
|
||||
typ = schema.resolve_type(
|
||||
self._arg_type_name, self.info, "event's 'data'")
|
||||
if not isinstance(self.arg_type, QAPISchemaObjectType):
|
||||
if not isinstance(typ, QAPISchemaObjectType):
|
||||
raise QAPISemError(
|
||||
self.info,
|
||||
"event's 'data' cannot take %s"
|
||||
% self.arg_type.describe())
|
||||
% typ.describe())
|
||||
self.arg_type = typ
|
||||
if self.arg_type.variants and not self.boxed:
|
||||
raise QAPISemError(
|
||||
self.info,
|
||||
|
|
Loading…
Reference in New Issue