Skip to content

The Move Field refactoring introduces a circular dependency. #829

@jonh-copin

Description

@jonh-copin

The MoveField refactoring introduces a circular dependency.

Steps to reproduce the behavior:

  1. Code before refactoring:
-- input/a.py
from b import B

class A:
    def __init__(self):
        self.b = B()
        self.owner = self

-- input/b.py
class B:
    pass
  1. Apply the move field to A.owner

  2. Code after refactoring:

-- input/a.py
from b import B

class A:
    def __init__(self):
        self.b = B(self)


-- input/b.py
from a import A

class B:
    def __init__(self, owner: A):
        self.owner = owner

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugUnexpected or incorrect user-visible behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions