def _validate_annotations(self):
for namespace in self.api.namespaces.values():<EOL><INDENT>for data_type in namespace.data_types:<EOL><INDENT>for field in data_type.fields:<EOL><INDENT>if field.redactor:<EOL><INDENT>self._validate_field_can_be_tagged_with_redactor(field)<EOL><DEDENT><DEDENT><DEDENT>for alias in namespace.aliases:<EOL><INDENT>if alias.redactor:<EOL><INDENT>self._validate_object_can_be_tagged_with_redactor(alias)<EOL><DEDENT><DEDENT><DEDENT>
Validates that all annotations are attached to proper types and that no field
has conflicting inherited or direct annotations. We need to go through all reference
chains to make sure we don't override a redactor set on a parent alias or type