'Resolve setting the attribute *attr* (a string) on the *target* type
to the given *value* type.
A function signature is returned, or None if resolution failed.'

def resolve_setattr(self, target, attr, value):

    for attrinfo in self._get_attribute_templates(target):
        expectedty = attrinfo.resolve(target, attr)
        if (expectedty is not None):
            return templates.signature(types.void, target, expectedty)
