On 9/23/20 3:53 PM, Eduardo Habkost wrote:
On Tue, Sep 22, 2020 at 05:13:01PM -0400, John Snow wrote:
mypy isn't fond of allowing you to check for bool membership in a
collection of str elements. Guard this lookup for precisely when we were
given a name.
Signed-off-by: John Snow <js...@redhat.com>
---
scripts/qapi/expr.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
index f6b55a87c1..67892502e9 100644
--- a/scripts/qapi/expr.py
+++ b/scripts/qapi/expr.py
@@ -166,7 +166,9 @@ def check_type(value, info, source,
raise QAPISemError(info,
"%s should be an object or type name" % source)
- permit_upper = allow_dict in info.pragma.name_case_whitelist
+ permit_upper = False
+ if isinstance(allow_dict, str):
+ permit_upper = allow_dict in info.pragma.name_case_whitelist
Well, this keeps existing behavior, so:
Reviewed-by: Eduardo Habkost <ehabk...@redhat.com>
But: what exactly is the meaning of allow_dict=False,
allow_dict=True, and allow_dict being a string?
allow_dict = True -- allows the type to be an object describing the type.
allow_dict: str -- allows the type to be an object (like True), but also
passes a name in for the purposes of validating the name with the pragma
whitelist(!)
# value is a dictionary, check that each member is okay
for (key, arg) in value.items():
--
2.26.2