##### SUMMARY
task contains call to Display.deprecated or AnsibleModule.deprecate and is scheduled for removal

```
lib/ansible/playbook/task.py:267:20: ansible-deprecated-version: Deprecated version ('2.12') found in call to Display.deprecated or AnsibleModule.deprecate (0%)
```

##### ISSUE TYPE
 - Bug Report

##### COMPONENT NAME
```
lib/ansible/playbook/task.py
```

##### ANSIBLE VERSION
```
2.12
```

##### CONFIGURATION
N/A

##### OS / ENVIRONMENT
N/A

##### STEPS TO REPRODUCE
N/A

##### EXPECTED RESULTS
N/A

##### ACTUAL RESULTS
N/A

if k in ('action', 'local_action', 'args', 'delegate_to') or k == action or k == 'shell':
                
                continue
            elif k.startswith('with_') and k.replace("with_", "") in lookup_loader:
                
                self._preprocess_with_loop(ds, new_ds, k, v)
            else:
                
                
                
                if action in C._ACTION_INCLUDE and k not in self._valid_attrs and k not in self.DEPRECATED_ATTRIBUTES:
                    display.deprecated("Specifying include variables at the top-level of the task is deprecated."
                                       " Please see:\nhttps://docs.ansible.com/ansible/playbooks_roles.html#task-include-files-and-encouraging-reuse\n\n"
                                       " for currently supported syntax regarding included files and variables",
                                       version="2.12", collection_name='ansible.builtin')
                    new_ds['vars'][k] = v
                elif C.INVALID_TASK_ATTRIBUTE_FAILED or k in self._valid_attrs:
                    new_ds[k] = v
                else:
                    display.warning("Ignoring invalid attribute: %s" % k)
        return super(Task, self).preprocess_data(new_ds)
    def _load_loop_control(self, attr, ds):
        if not isinstance(ds, dict):
            raise AnsibleParserError(
                "the `loop_control` value must be specified as a dictionary and cannot "
                "be a variable itself (though it can contain variables)",
                obj=ds,
            )
        return LoopControl.load(data=ds, variable_manager=self._variable_manager, loader=self._loader)
    def _validate_attributes(self, ds):