""" Code that might cause recursion issues (or has caused in the past). """ def Recursion(): def recurse(self): self.a = self.a self.b = self.b.recurse() #? Recursion().a #? Recursion().b class X(): def __init__(self): self.recursive = [1, 3] def annoying(self): self.recursive = [self.recursive[0]] def recurse(self): self.recursive = [self.recursive[1]] #? int() X().recursive[0] def to_list(iterable): return list(set(iterable)) def recursion1(foo): return to_list(to_list(foo)) + recursion1(foo) #? int() recursion1([1,2])[0] class FooListComp(): def __init__(self): self.recursive = [1] def annoying(self): self.recursive = [x for x in self.recursive] #? int() FooListComp().recursive[0] class InstanceAttributeIfs: def b(self): self.a1 = 1 self.a2 = 1 def c(self): self.a2 = '' def x(self): self.b() if self.a1 == 1: self.a1 = self.a1 + 1 if self.a2 == UNDEFINED: self.a2 = self.a2 + 1 #? int() self.a1 #? int() str() self.a2 #? int() InstanceAttributeIfs().a1 #? int() str() InstanceAttributeIfs().a2 class A: def a(self, b): for x in [self.a(i) for i in b]: #? x class B: def a(self, b): for i in b: for i in self.a(i): #? yield i foo = int foo = foo # type: foo #? int foo while True: bar = int bar = bar # type: bar #? int() bar class Comprehension: def __init__(self, foo): self.foo = foo def update(self): self.foo = (self.foo,) #? int() tuple() Comprehension(1).foo[0]