On Thu, Sep 24, 2020 at 08:47:31PM -0400, John Snow wrote: > 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(!)
What. -- Eduardo