diff --git a/jedi/evaluate/precedence.py b/jedi/evaluate/precedence.py index 18224bb4..7efb69ba 100644 --- a/jedi/evaluate/precedence.py +++ b/jedi/evaluate/precedence.py @@ -188,7 +188,7 @@ def calculate(evaluator, left_result, operator, right_result): for left in left_result: for right in right_result: result += _element_calculate(evaluator, left, operator, right) - return result + return list(set(result)) def _factor_calculate(evaluator, operator, right): diff --git a/test/completion/precedence.py b/test/completion/precedence.py index de0db41d..fc42937c 100644 --- a/test/completion/precedence.py +++ b/test/completion/precedence.py @@ -82,3 +82,19 @@ for char in reversed(['f', 'o', 'o', 'b', 'a', 'r']): #? str() getattr(FooBar, target) + + +# ----------------- +# repetition problems -> could be very slow and memory expensive - shouldn't +# be. +# ----------------- + +b = [str(1)] +l = list +for x in [l(0), l(1), l(2), l(3), l(4), l(5), l(6), l(7), l(8), l(9), l(10), + l(11), l(12), l(13), l(14), l(15), l(16), l(17), l(18), l(19), l(20), + l(21), l(22), l(23), l(24), l(25), l(26), l(27), l(28), l(29)]: + b += x + +#? str() +b[1]