瀏覽代碼

qapi: Drop check_type()'s redundant parameter @allow_optional

check_type() uses @allow_optional only when @value is a dictionary and
@allow_dict is True.  All callers that pass allow_dict=True also pass
allow_optional=True.

Therefore, @allow_optional is always True when check_type() uses it.
Drop the redundant parameter.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190913201349.24332-3-armbru@redhat.com>
Markus Armbruster 6 年之前
父節點
當前提交
dcca907bed
共有 1 個文件被更改,包括 8 次插入9 次删除
  1. 8 9
      scripts/qapi/common.py

+ 8 - 9
scripts/qapi/common.py

@@ -783,9 +783,8 @@ def check_if_str(ifcond, info):
         check_if_str(ifcond, info)
         check_if_str(ifcond, info)
 
 
 
 
-def check_type(info, source, value, allow_array=False,
-               allow_dict=False, allow_optional=False,
-               allow_metas=[]):
+def check_type(info, source, value,
+               allow_array=False, allow_dict=False, allow_metas=[]):
     global all_names
     global all_names
 
 
     if value is None:
     if value is None:
@@ -821,7 +820,7 @@ def check_type(info, source, value, allow_array=False,
     # value is a dictionary, check that each member is okay
     # value is a dictionary, check that each member is okay
     for (key, arg) in value.items():
     for (key, arg) in value.items():
         check_name(info, "Member of %s" % source, key,
         check_name(info, "Member of %s" % source, key,
-                   allow_optional=allow_optional)
+                   allow_optional=True)
         if c_name(key, False) == 'u' or c_name(key, False).startswith('has_'):
         if c_name(key, False) == 'u' or c_name(key, False).startswith('has_'):
             raise QAPISemError(info, "Member of %s uses reserved name '%s'"
             raise QAPISemError(info, "Member of %s uses reserved name '%s'"
                                % (source, key))
                                % (source, key))
@@ -843,14 +842,14 @@ def check_command(expr, info):
     if boxed:
     if boxed:
         args_meta += ['union', 'alternate']
         args_meta += ['union', 'alternate']
     check_type(info, "'data' for command '%s'" % name,
     check_type(info, "'data' for command '%s'" % name,
-               expr.get('data'), allow_dict=not boxed, allow_optional=True,
+               expr.get('data'), allow_dict=not boxed,
                allow_metas=args_meta)
                allow_metas=args_meta)
     returns_meta = ['union', 'struct']
     returns_meta = ['union', 'struct']
     if name in returns_whitelist:
     if name in returns_whitelist:
         returns_meta += ['built-in', 'alternate', 'enum']
         returns_meta += ['built-in', 'alternate', 'enum']
     check_type(info, "'returns' for command '%s'" % name,
     check_type(info, "'returns' for command '%s'" % name,
                expr.get('returns'), allow_array=True,
                expr.get('returns'), allow_array=True,
-               allow_optional=True, allow_metas=returns_meta)
+               allow_metas=returns_meta)
 
 
 
 
 def check_event(expr, info):
 def check_event(expr, info):
@@ -861,7 +860,7 @@ def check_event(expr, info):
     if boxed:
     if boxed:
         meta += ['union', 'alternate']
         meta += ['union', 'alternate']
     check_type(info, "'data' for event '%s'" % name,
     check_type(info, "'data' for event '%s'" % name,
-               expr.get('data'), allow_dict=not boxed, allow_optional=True,
+               expr.get('data'), allow_dict=not boxed,
                allow_metas=meta)
                allow_metas=meta)
 
 
 
 
@@ -889,7 +888,7 @@ def check_union(expr, info):
     else:
     else:
         # The object must have a string or dictionary 'base'.
         # The object must have a string or dictionary 'base'.
         check_type(info, "'base' for union '%s'" % name,
         check_type(info, "'base' for union '%s'" % name,
-                   base, allow_dict=True, allow_optional=True,
+                   base, allow_dict=True,
                    allow_metas=['struct'])
                    allow_metas=['struct'])
         if not base:
         if not base:
             raise QAPISemError(info, "Flat union '%s' must have a base"
             raise QAPISemError(info, "Flat union '%s' must have a base"
@@ -1012,7 +1011,7 @@ def check_struct(expr, info):
     features = expr.get('features')
     features = expr.get('features')
 
 
     check_type(info, "'data' for struct '%s'" % name, members,
     check_type(info, "'data' for struct '%s'" % name, members,
-               allow_dict=True, allow_optional=True)
+               allow_dict=True)
     check_type(info, "'base' for struct '%s'" % name, expr.get('base'),
     check_type(info, "'base' for struct '%s'" % name, expr.get('base'),
                allow_metas=['struct'])
                allow_metas=['struct'])