PY-78189 Flip expected and actual types in warnings about __set__ argument

(cherry picked from commit 65f8c92b852539908c71715756ec407781a9fb6b)

IJ-CR-152050

GitOrigin-RevId: 2672bc7f5d39dd2bec1a9b2c2d322dffb3d66062
This commit is contained in:
Mikhail Golubev
2024-12-19 16:42:59 +02:00
committed by intellij-monorepo-bot
parent 4ed6a858d4
commit 1be05f5d9e
2 changed files with 12 additions and 11 deletions

View File

@@ -230,7 +230,8 @@ public class PyTypeCheckerInspection extends PyInspection {
String expectedName = PythonDocumentationProvider.getVerboseTypeName(expected, myTypeEvalContext); String expectedName = PythonDocumentationProvider.getVerboseTypeName(expected, myTypeEvalContext);
String actualName = PythonDocumentationProvider.getTypeName(actual, myTypeEvalContext); String actualName = PythonDocumentationProvider.getTypeName(actual, myTypeEvalContext);
registerProblem(value, descriptor ? registerProblem(value, descriptor ?
PyPsiBundle.message("INSP.type.checker.expected.type.from.dunder.set.got.type.instead", actualName, expectedName) : PyPsiBundle.message("INSP.type.checker.expected.type.from.dunder.set.got.type.instead",
expectedName, actualName) :
PyPsiBundle.message("INSP.type.checker.expected.type.got.type.instead", expectedName, actualName)); PyPsiBundle.message("INSP.type.checker.expected.type.got.type.instead", expectedName, actualName));
} }
} }

View File

@@ -2227,8 +2227,8 @@ def foo(param: str | int) -> TypeGuard[str]:
t = Test() t = Test()
t.member = "str" t.member = "str"
t.member = <warning descr="Expected type 'int' (from '__set__'), got 'str' instead">123</warning> t.member = <warning descr="Expected type 'str' (from '__set__'), got 'int' instead">123</warning>
t.member = <warning descr="Expected type 'Type[list]' (from '__set__'), got 'str' instead">list</warning> t.member = <warning descr="Expected type 'str' (from '__set__'), got 'Type[list]' instead">list</warning>
"""); """);
} }
@@ -2245,8 +2245,8 @@ def foo(param: str | int) -> TypeGuard[str]:
t = Test() t = Test()
t.member = "str" t.member = "str"
t.member = <warning descr="Expected type 'int' (from '__set__'), got 'str' instead">123</warning> t.member = <warning descr="Expected type 'str' (from '__set__'), got 'int' instead">123</warning>
t.member = <warning descr="Expected type 'Type[list]' (from '__set__'), got 'str' instead">list</warning> t.member = <warning descr="Expected type 'str' (from '__set__'), got 'Type[list]' instead">list</warning>
"""); """);
} }
@@ -2278,10 +2278,10 @@ def foo(param: str | int) -> TypeGuard[str]:
t = Test() t = Test()
t.member = "abc" t.member = "abc"
t.member = <warning descr="Expected type 'int' (from '__set__'), got 'str' instead">42</warning> t.member = <warning descr="Expected type 'str' (from '__set__'), got 'int' instead">42</warning>
p = Prod() p = Prod()
p.member = <warning descr="Expected type 'str' (from '__set__'), got 'LocalizedString' instead">"abc"</warning> p.member = <warning descr="Expected type 'LocalizedString' (from '__set__'), got 'str' instead">"abc"</warning>
p.member = <warning descr="Expected type 'int' (from '__set__'), got 'LocalizedString' instead">42</warning> p.member = <warning descr="Expected type 'LocalizedString' (from '__set__'), got 'int' instead">42</warning>
"""); """);
} }
@@ -2300,8 +2300,8 @@ def foo(param: str | int) -> TypeGuard[str]:
t = Test() t = Test()
t.member = 42 t.member = 42
t.member = <warning descr="Expected type 'Literal[43]' (from '__set__'), got 'Literal[42]' instead">43</warning> t.member = <warning descr="Expected type 'Literal[42]' (from '__set__'), got 'Literal[43]' instead">43</warning>
t.member = <warning descr="Expected type 'Literal[\\"42\\"]' (from '__set__'), got 'Literal[42]' instead">"42"</warning> t.member = <warning descr="Expected type 'Literal[42]' (from '__set__'), got 'Literal[\\"42\\"]' instead">"42"</warning>
"""); """);
} }
@@ -2320,7 +2320,7 @@ def foo(param: str | int) -> TypeGuard[str]:
x = Test("foo") x = Test("foo")
x.member = <warning descr="Expected type 'int' (from '__set__'), got 'str' instead">42</warning> x.member = <warning descr="Expected type 'str' (from '__set__'), got 'int' instead">42</warning>
"""); """);
} }