Skip to content

Fixed bug that results in a false positive error under certain circum…#10210

Merged
erictraut merged 1 commit into
mainfrom
issue-10207
Mar 29, 2025
Merged

Fixed bug that results in a false positive error under certain circum…#10210
erictraut merged 1 commit into
mainfrom
issue-10207

Conversation

@erictraut
Copy link
Copy Markdown
Collaborator

…stances involving a type variable with an upper bound of type[T] that is assigned to another type variable. This addresses #10207.

…stances involving a type variable with an upper bound of `type[T]` that is assigned to another type variable. This addresses #10207.
@github-actions
Copy link
Copy Markdown
Contributor

Diff from mypy_primer, showing the effect of this PR on open source code:

sympy (https://github.com/sympy/sympy)
-   /tmp/mypy_primer/projects/sympy/sympy/core/singleton.py:191:45 - error: Argument of type "Self@Singleton" cannot be assigned to parameter "cls" of type "type[Self@Basic]" in function "__new__" (reportArgumentType)
+   /tmp/mypy_primer/projects/sympy/sympy/core/singleton.py:191:45 - error: Argument of type "Self@Singleton" cannot be assigned to parameter "cls" of type "type[Self@Basic]" in function "__new__"
+     "Singleton*" is not assignable to "Basic" (reportArgumentType)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/matchpy_connector.py:288:16 - error: Type "Basic" is not assignable to declared type "Expr"
-     "Basic" is not assignable to "Expr" (reportAssignmentType)
- /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_autowrap.py
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_autowrap.py:267:14 - error: Cannot access attribute "_imp_" for class "type[AppliedUndef]"
-     Attribute "_imp_" is unknown (reportAttributeAccessIssue)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_autowrap.py:267:14 - error: Cannot access attribute "_imp_" for class "UndefinedFunction"
-     Attribute "_imp_" is unknown (reportAttributeAccessIssue)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:120:18 - error: Argument of type "Equality | Unknown" cannot be assigned to parameter "expr" of type "Expr" in function "add"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:120:18 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer" cannot be assigned to parameter "expr" of type "Expr" in function "add"
-     Type "Equality | Unknown" is not assignable to type "Expr"
-       "Equality" is not assignable to "Expr" (reportArgumentType)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:120:70 - error: Argument of type "list[Unequality | Unknown | Equality | Relational]" cannot be assigned to parameter "conditions_nonfalse" of type "List[Expr]" in function "add"
-     Type "Unequality | Unknown | Equality | Relational" is not assignable to type "Expr"
+     Type "Equality | Unknown | Relational | Unequality | Integer" is not assignable to type "Expr"
-       "Relational" is not assignable to "Expr"
-     Type "Unequality | Unknown | Equality | Relational" is not assignable to type "Expr"
-       "Relational" is not assignable to "Expr"
-     Type "Unequality | Unknown | Equality | Relational" is not assignable to type "Expr"
-       "Relational" is not assignable to "Expr"
-     Type "Unequality | Unknown | Equality | Relational" is not assignable to type "Expr"
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:123:18 - error: Argument of type "Equality | Unknown" cannot be assigned to parameter "expr" of type "Expr" in function "add"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:120:70 - error: Argument of type "list[Unequality | Integer]" cannot be assigned to parameter "conditions_nonfalse" of type "List[Expr]" in function "add"
-     Type "Equality | Unknown" is not assignable to type "Expr"
+     Type "Unequality | Integer" is not assignable to type "Expr"
+       "Unequality" is not assignable to "Expr"
+     Type "Unequality | Integer" is not assignable to type "Expr"
+       "Unequality" is not assignable to "Expr"
+     Type "Unequality | Integer" is not assignable to type "Expr"
+       "Unequality" is not assignable to "Expr"
+     Type "Unequality | Integer" is not assignable to type "Expr"
-       "Equality" is not assignable to "Expr" (reportArgumentType)
+       "Unequality" is not assignable to "Expr" (reportArgumentType)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:123:18 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer" cannot be assigned to parameter "expr" of type "Expr" in function "add"
+     Type "Equality | Unknown | Relational | Unequality | Integer" is not assignable to type "Expr"
+       "Relational" is not assignable to "Expr" (reportArgumentType)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:126:9 - error: Argument of type "Equality | Unknown" cannot be assigned to parameter "expr" of type "Expr" in function "add"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:126:9 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer" cannot be assigned to parameter "expr" of type "Expr" in function "add"
-     Type "Equality | Unknown" is not assignable to type "Expr"
+     Type "Equality | Unknown | Relational | Unequality | Integer" is not assignable to type "Expr"
-       "Equality" is not assignable to "Expr" (reportArgumentType)
+       "Relational" is not assignable to "Expr" (reportArgumentType)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:132:9 - error: Argument of type "Equality | Unknown" cannot be assigned to parameter "expr" of type "Expr" in function "add"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_matchpy_connector.py:132:9 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer" cannot be assigned to parameter "expr" of type "Expr" in function "add"
-     Type "Equality | Unknown" is not assignable to type "Expr"
+     Type "Equality | Unknown | Relational | Unequality | Integer" is not assignable to type "Expr"
-       "Equality" is not assignable to "Expr" (reportArgumentType)
+       "Relational" is not assignable to "Expr" (reportArgumentType)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:895:12 - error: Operator "/" not supported for types "Equality | Unknown" and "Literal[2]"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:895:12 - error: Operator "/" not supported for types "Equality | Unknown | Relational | Unequality | Integer" and "Literal[2]"
+     Operator "/" not supported for types "Equality" and "Literal[2]"
+     Operator "/" not supported for types "Relational" and "Literal[2]"
-     Operator "/" not supported for types "Equality" and "Literal[2]" (reportOperatorIssue)
+     Operator "/" not supported for types "Unequality" and "Literal[2]" (reportOperatorIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1863:12 - error: Cannot access attribute "combsimp" for class "Relational"
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1863:12 - error: Cannot access attribute "combsimp" for class "Unequality"
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1911:14 - error: Cannot access attribute "factor" for class "Relational"
+     Attribute "factor" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1911:14 - error: Cannot access attribute "factor" for class "Unequality"
+     Attribute "factor" is unknown (reportAttributeAccessIssue)
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1918:14 - error: Cannot access attribute "combsimp" for class "Relational"
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1918:14 - error: Cannot access attribute "combsimp" for class "Unequality"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1932:12 - error: Cannot access attribute "combsimp" for class "Relational"
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1932:12 - error: Cannot access attribute "combsimp" for class "Unequality"
+     Attribute "combsimp" is unknown (reportAttributeAccessIssue)
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1992:22 - error: Argument of type "Equality | Unknown | NaN | Sum" cannot be assigned to parameter "x" of type "ConvertibleToFloat" in function "__new__"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1992:22 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer | NaN | Sum" cannot be assigned to parameter "x" of type "ConvertibleToFloat" in function "__new__"
-     Type "Equality | Unknown | NaN | Sum" is not assignable to type "ConvertibleToFloat"
+     Type "Equality | Unknown | Relational | Unequality | Integer | NaN | Sum" is not assignable to type "ConvertibleToFloat"
-       Type "Equality" is not assignable to type "ConvertibleToFloat"
+       Type "Relational" is not assignable to type "ConvertibleToFloat"
-         "Equality" is not assignable to "str"
+         "Relational" is not assignable to "str"
-         "Equality" is incompatible with protocol "Buffer"
+         "Relational" is incompatible with protocol "Buffer"
-         "Equality" is incompatible with protocol "SupportsFloat"
+         "Relational" is incompatible with protocol "SupportsFloat"
-         "Equality" is incompatible with protocol "SupportsIndex"
+         "Relational" is incompatible with protocol "SupportsIndex"
-   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1992:22 - error: Argument of type "Equality | Unknown | NaN | Sum" cannot be assigned to parameter "x" of type "ConvertibleToFloat" in function "__new__"
+   /tmp/mypy_primer/projects/sympy/sympy/utilities/tests/test_wester.py:1992:22 - error: Argument of type "Equality | Unknown | Relational | Unequality | Integer | NaN | Sum" cannot be assigned to parameter "x" of type "ConvertibleToFloat" in function "__new__"

... (truncated 30 lines) ...

@erictraut erictraut merged commit 033a0f1 into main Mar 29, 2025
@erictraut erictraut deleted the issue-10207 branch March 29, 2025 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant