##### SUMMARY
See https://github.com/ansible/ansible/blob/88d8cf8197c53edd3bcdcd21429eb4c2bfbf0f6a/lib/ansible/module_utils/basic.py#L699-L706

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/module_utils/basic.py

##### ANSIBLE VERSION
```paste below
2.9
devel
```

'bits': self._check_type_bits,
        }
        if not bypass_checks:
            self._check_required_arguments()
            self._check_argument_types()
            self._check_argument_values()
            self._check_required_together(required_together)
            self._check_required_one_of(required_one_of)
            self._check_required_if(required_if)
            self._check_required_by(required_by)
        self._set_defaults(pre=False)
        
        self._handle_options()
        if not self.no_log:
            self._log_invocation()
        
        self._set_cwd()
        
        
        
        
        if module_set_check_invalid_arguments and self._name not in ('uri', 'zfs'):
            self.deprecate('Setting check_invalid_arguments is deprecated and will be removed.'
                           ' Update the code for this module  In the future, AnsibleModule will'
                           ' always check for invalid arguments.', version='2.9')
    @property
    def tmpdir(self):