lpython icon indicating copy to clipboard operation
lpython copied to clipboard

Inplace class definitions causes infinite looping

Open swamishiju opened this issue 10 months ago • 0 comments

class Foo:
    def __init__(self: "Foo", bar: i32):
        self.bar: i32 = bar

    def __repr__(self: "Foo") -> str:
        return str(self.bar)


def main():
    a: Foo = Foo(10)
    print(a)


main()

Works fine but if we make a Foo instance inplace in print

def main():
    print(Foo(10))

this causes an infinite loop.

This also happens in case of functions taking in a Foo param

def foobar(a: Foo):
    print(a)

I imagine we need to add an error for as of now unsupported feature

PS: I had encountered a similar problem in my PR I simply threw an error for that case

swamishiju avatar Feb 24 '25 11:02 swamishiju