<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _detect(self):
 """ Detect uninitialized local variables Recursively visit the calls Returns: dict: [contract name] = set(local variable uninitialized) """

        results = []

        self.results = []
        self.visited_all_paths = {}

        for contract in self.slither.contracts:
            for function in contract.functions:
                if function.is_implemented and function.contract == contract:
                    if function.contains_assembly:
                        continue
                    # dont consider storage variable, as they are detected by another detector
                    uninitialized_local_variables = [v for v in function.local_variables if not v.is_storage and v.uninitialized]
                    function.entry_point.context[self.key] = uninitialized_local_variables
                    self._detect_uninitialized(function, function.entry_point, [])
        all_results = list(set(self.results))
        for(function, uninitialized_local_variable) in all_results:
            var_name = uninitialized_local_variable.name

            info = "{} in {}.{} ({}) is a local variable never initialiazed\n"
            info = info.format(var_name,
                               function.contract.name,
                               function.name,
                               uninitialized_local_variable.source_mapping_str)


            json = self.generate_json_result(info)
            self.add_variable_to_json(uninitialized_local_variable, json)
            self.add_function_to_json(function, json)
            results.append(json)

        return results