qapi: Factor out QAPISchemaObjectTypeMember.check_clash()
While there, stick in a TODO change key of seen from QAPI name to C name. Can't do it right away, because it would fail the assertion for tests/qapi-schema/args-has-clash.json. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1446559499-26984-6-git-send-email-armbru@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1447836791-369-10-git-send-email-eblake@redhat.com>
This commit is contained in:
		
							parent
							
								
									23a4b2c6f1
								
							
						
					
					
						commit
						577de12d22
					
				@ -984,12 +984,10 @@ class QAPISchemaObjectType(QAPISchemaType):
 | 
			
		||||
            assert not self.base.variants       # not implemented
 | 
			
		||||
            self.base.check(schema)
 | 
			
		||||
            for m in self.base.members:
 | 
			
		||||
                assert m.name not in seen
 | 
			
		||||
                seen[m.name] = m
 | 
			
		||||
                m.check_clash(seen)
 | 
			
		||||
        for m in self.local_members:
 | 
			
		||||
            m.check(schema)
 | 
			
		||||
            assert m.name not in seen
 | 
			
		||||
            seen[m.name] = m
 | 
			
		||||
            m.check_clash(seen)
 | 
			
		||||
        if self.variants:
 | 
			
		||||
            self.variants.check(schema, seen)
 | 
			
		||||
        self.members = seen.values()
 | 
			
		||||
@ -1030,6 +1028,11 @@ class QAPISchemaObjectTypeMember(object):
 | 
			
		||||
        self.type = schema.lookup_type(self._type_name)
 | 
			
		||||
        assert self.type
 | 
			
		||||
 | 
			
		||||
    def check_clash(self, seen):
 | 
			
		||||
        # TODO change key of seen from QAPI name to C name
 | 
			
		||||
        assert self.name not in seen
 | 
			
		||||
        seen[self.name] = self
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class QAPISchemaObjectTypeVariants(object):
 | 
			
		||||
    def __init__(self, tag_name, tag_member, variants):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user