Eric Blake <ebl...@redhat.com> writes:

> We document that members of enums and objects should be
> 'lower-case', although we were not enforcing it.  We have to
> whitelist a few pre-existing entities that violate the norms.
> Add three new tests to expose the new error message, each of
> which first uses the whitelisted name 'UuidInfo' to prove the
> whitelist works, then triggers the failure.
>
> Note that by adding this check, we have effectively forbidden
> an entity with a case-insensitive clash of member names, for
> any entity that is not on the whitelist (although there is
> still the possibility to clash via '-' vs. '_').
>
> Signed-off-by: Eric Blake <ebl...@redhat.com>
[...]
> @@ -1039,6 +1054,10 @@ class QAPISchemaMember(object):
>
>      def check_clash(self, info, seen):
>          cname = c_name(self.name)
> +        if cname.lower() != cname and info['name'] not in case_whitelist:
> +            raise QAPIExprError(info,
> +                                "Member '%s' of '%s' should use lowercase"
> +                                % (self.name, info['name']))
>          if cname in seen:
>              raise QAPIExprError(info,
>                                  "%s collides with %s"

As far as I can tell, this is the only use of info['name'] in this
series.

Can you give an example where info['name'] != self.owner?

Reply via email to