mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-10 15:51:51 +08:00
if there's a func listener, stop the execution of a function. This solves the issue of nested *args that were reported as having too many params in static analysis.
This commit is contained in:
@@ -430,6 +430,12 @@ class FunctionExecution(Executable):
|
|||||||
# Feed the listeners, with the params.
|
# Feed the listeners, with the params.
|
||||||
for listener in func.listeners:
|
for listener in func.listeners:
|
||||||
listener.execute(self._get_params())
|
listener.execute(self._get_params())
|
||||||
|
if func.listeners:
|
||||||
|
# If we do have listeners, that means that there's not a regular
|
||||||
|
# execution ongoing. In this case Jedi is interested in the
|
||||||
|
# inserted params, not in the actual execution of the function.
|
||||||
|
return []
|
||||||
|
|
||||||
if func.is_generator and not evaluate_generator:
|
if func.is_generator and not evaluate_generator:
|
||||||
return [iterable.Generator(self._evaluator, func, self.var_args)]
|
return [iterable.Generator(self._evaluator, func, self.var_args)]
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
# -----------------
|
||||||
|
# *args
|
||||||
|
# -----------------
|
||||||
|
|
||||||
|
|
||||||
def simple(a):
|
def simple(a):
|
||||||
return a
|
return a
|
||||||
@@ -13,3 +17,13 @@ nested()
|
|||||||
|
|
||||||
def nested_no_call_to_function(*args):
|
def nested_no_call_to_function(*args):
|
||||||
return simple(1, *args)
|
return simple(1, *args)
|
||||||
|
|
||||||
|
|
||||||
|
def simple2(a, b, c):
|
||||||
|
return b
|
||||||
|
def nested(*args):
|
||||||
|
return simple2(1, *args)
|
||||||
|
def nested_twice(*args1):
|
||||||
|
return nested(*args1)
|
||||||
|
|
||||||
|
nested_twice(2, 3)
|
||||||
|
|||||||
Reference in New Issue
Block a user