|
@@ -354,14 +354,14 @@ def check_type_name_or_array(value: Optional[object],
|
|
source)
|
|
source)
|
|
|
|
|
|
|
|
|
|
-def check_type_name_or_implicit(value: Optional[object],
|
|
|
|
- info: QAPISourceInfo, source: str,
|
|
|
|
- parent_name: Optional[str]) -> None:
|
|
|
|
|
|
+def check_type_implicit(value: Optional[object],
|
|
|
|
+ info: QAPISourceInfo, source: str,
|
|
|
|
+ parent_name: Optional[str]) -> None:
|
|
"""
|
|
"""
|
|
Normalize and validate an optional implicit struct type.
|
|
Normalize and validate an optional implicit struct type.
|
|
|
|
|
|
- Accept ``None``, ``str``, or a ``dict`` defining an implicit
|
|
|
|
- struct type. The latter is normalized in place.
|
|
|
|
|
|
+ Accept ``None`` or a ``dict`` defining an implicit struct type.
|
|
|
|
+ The latter is normalized in place.
|
|
|
|
|
|
:param value: The value to check.
|
|
:param value: The value to check.
|
|
:param info: QAPI schema source file information.
|
|
:param info: QAPI schema source file information.
|
|
@@ -377,9 +377,6 @@ def check_type_name_or_implicit(value: Optional[object],
|
|
if value is None:
|
|
if value is None:
|
|
return
|
|
return
|
|
|
|
|
|
- if isinstance(value, str):
|
|
|
|
- return
|
|
|
|
-
|
|
|
|
if not isinstance(value, dict):
|
|
if not isinstance(value, dict):
|
|
raise QAPISemError(info,
|
|
raise QAPISemError(info,
|
|
"%s should be an object or type name" % source)
|
|
"%s should be an object or type name" % source)
|
|
@@ -401,6 +398,15 @@ def check_type_name_or_implicit(value: Optional[object],
|
|
check_type_name_or_array(arg['type'], info, key_source)
|
|
check_type_name_or_array(arg['type'], info, key_source)
|
|
|
|
|
|
|
|
|
|
|
|
+def check_type_name_or_implicit(value: Optional[object],
|
|
|
|
+ info: QAPISourceInfo, source: str,
|
|
|
|
+ parent_name: Optional[str]) -> None:
|
|
|
|
+ if value is None or isinstance(value, str):
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+ check_type_implicit(value, info, source, parent_name)
|
|
|
|
+
|
|
|
|
+
|
|
def check_features(features: Optional[object],
|
|
def check_features(features: Optional[object],
|
|
info: QAPISourceInfo) -> None:
|
|
info: QAPISourceInfo) -> None:
|
|
"""
|
|
"""
|
|
@@ -486,7 +492,7 @@ def check_struct(expr: QAPIExpression) -> None:
|
|
name = cast(str, expr['struct']) # Checked in check_exprs
|
|
name = cast(str, expr['struct']) # Checked in check_exprs
|
|
members = expr['data']
|
|
members = expr['data']
|
|
|
|
|
|
- check_type_name_or_implicit(members, expr.info, "'data'", name)
|
|
|
|
|
|
+ check_type_implicit(members, expr.info, "'data'", name)
|
|
check_type_name(expr.get('base'), expr.info, "'base'")
|
|
check_type_name(expr.get('base'), expr.info, "'base'")
|
|
|
|
|
|
|
|
|