From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a2FYJ-00079p-QK for qemu-devel@nongnu.org; Fri, 27 Nov 2015 04:42:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a2FYG-0005Io-JK for qemu-devel@nongnu.org; Fri, 27 Nov 2015 04:42:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52938) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a2FYG-0005Ia-Dy for qemu-devel@nongnu.org; Fri, 27 Nov 2015 04:42:48 -0500 From: Markus Armbruster References: <1448040300-968-1-git-send-email-eblake@redhat.com> <1448040300-968-13-git-send-email-eblake@redhat.com> Date: Fri, 27 Nov 2015 10:42:45 +0100 In-Reply-To: <1448040300-968-13-git-send-email-eblake@redhat.com> (Eric Blake's message of "Fri, 20 Nov 2015 10:24:58 -0700") Message-ID: <877fl3aicq.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v13 12/14] qapi: Enforce (or whitelist) case conventions on qapi members List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, Michael Roth Eric Blake 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 [...] > @@ -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?