PY-33487 PY-30874 Properly account implicit arguments in Change Signature

Instead of just relying on the fact that some of parameters is named "self".

GitOrigin-RevId: c9c0d1d4bbcecb93a84a3dc451485fa70790ca6d
This commit is contained in:
Mikhail Golubev
2020-03-29 23:10:16 +03:00
committed by intellij-monorepo-bot
parent 431d671ed1
commit b044c8811a
8 changed files with 81 additions and 37 deletions

View File

@@ -1,18 +1,8 @@
class A:
def fo<caret>o(self, a, b):
pass
class B(A):
def foo(self, a, b):
pass
class С(A):
def foo(self, a, b):
pass
class SomeClass:
@classmethod
def foo(cls, arg2, arg1):
pass
a = A()
a.foo(1, 2)
b = B()
b.foo(2, 2)
SomeClass.foo(2, 1)
SomeClass().foo(2, 1)

View File

@@ -1,18 +1,8 @@
class A:
def fo<caret>o(self, a):
pass
class B(A):
def foo(self, a):
pass
class С(A):
def foo(self, a):
pass
class SomeClass:
@classmethod
def f<caret>oo(cls, arg1, arg2):
pass
a = A()
a.foo(1)
b = B()
b.foo(2)
SomeClass.foo(1, 2)
SomeClass().foo(1, 2)

View File

@@ -0,0 +1,6 @@
class MyClass:
def method(s, y, x):
pass
MyClass().method(2, 1)

View File

@@ -0,0 +1,6 @@
class MyClass:
def me<caret>thod(s, x, y):
pass
MyClass().method(1, 2)

View File

@@ -0,0 +1,20 @@
class A:
def fo<caret>o(self, a, b):
pass
class B(A):
def foo(self, a, b):
pass
class С(A):
def foo(self, a, b):
pass
a = A()
a.foo(1, 2)
A.foo(a, 1, 2)
b = B()
b.foo(2, 2)
B.foo(b, 2, 2)

View File

@@ -0,0 +1,20 @@
class A:
def fo<caret>o(self, a):
pass
class B(A):
def foo(self, a):
pass
class С(A):
def foo(self, a):
pass
a = A()
a.foo(1)
A.foo(a, 1)
b = B()
b.foo(2)
B.foo(b, 2)