Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork3.1k
Disallow no-args generic aliases when using PEP 613 explicit aliases#18173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Disallow no-args generic aliases when using PEP 613 explicit aliases#18173
Uh oh!
There was an error while loading.Please reload this page.
Conversation
brianschubert commentedNov 19, 2024
Conformance results diff for this PR ( diff --git a/conformance/results/mypy/aliases_explicit.toml b/conformance/results/mypy/aliases_explicit.tomlindex ee05762..f07e7ad 100644--- a/conformance/results/mypy/aliases_explicit.toml+++ b/conformance/results/mypy/aliases_explicit.toml@@ -24,11 +24,11 @@ aliases_explicit.py:89: error: Invalid type: try using Literal[1] instead? [val aliases_explicit.py:90: error: Invalid type alias: expression is not a valid type [valid-type] aliases_explicit.py:90: error: Function "list" could always be true in boolean context [truthy-function] aliases_explicit.py:91: error: Invalid type alias: expression is not a valid type [valid-type]+aliases_explicit.py:100: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg] aliases_explicit.py:101: error: "UnionType[list[Any], set[Any]]" not callable [operator] aliases_explicit.py:102: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg] """-conformance_automated = "Fail"+conformance_automated = "Pass" errors_diff = """-Line 100: Expected 1 errors """ ignore_errors = ["Function \"list\" could always be true in boolean context"]diff --git a/conformance/results/mypy/version.toml b/conformance/results/mypy/version.tomlindex 699a899..1d9b711 100644--- a/conformance/results/mypy/version.toml+++ b/conformance/results/mypy/version.toml@@ -1,2 +1,2 @@-version = "mypy 1.14.0+dev.21587f01045246a9ecb54a054a5ba03e20cbbd19"-test_duration = 4.5+version = "mypy 1.14.0+dev.6563c362fd5ee8e1fbf17775eab5dcad5a0a7459"+test_duration = 5.1 |
This comment has been minimized.
This comment has been minimized.
This is expected, now that the below branch is no longer taken forPEP 613 aliases. Implicit aliases are now the only case with eagerexpansion.https://github.com/python/mypy/blob/21587f01045246a9ecb54a054a5ba03e20cbbd19/mypy/typeanal.py#L2147-L2151
This comment has been minimized.
This comment has been minimized.
brianschubert commentedNov 20, 2024
The psycopg hits are true positives from aliases of the form |
Uh oh!
There was an error while loading.Please reload this page.
Diff frommypy_primer, showing the effect of this PR on open source code: psycopg (https://github.com/psycopg/psycopg)+ psycopg/psycopg/_acompat.py:43: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg]+ psycopg/psycopg/_acompat.py:52: error: Returning Any from function declared to return "T" [no-any-return]+ psycopg/psycopg/_acompat.py:55: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg]+ psycopg_pool/psycopg_pool/_acompat.py:63: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg]+ psycopg_pool/psycopg_pool/_acompat.py:72: error: Returning Any from function declared to return "T" [no-any-return]+ psycopg_pool/psycopg_pool/_acompat.py:105: error: Bad number of arguments for type alias, expected 0, given 1 [type-arg] |
c859cb1 intopython:masterUh oh!
There was an error while loading.Please reload this page.
This is a partial revert ofpython#18173 to unblock the 1.15 releaseFixespython#18488
This is a partial revert ofpython#18173 to unblock the 1.15 releaseFixespython#18488
Uh oh!
There was an error while loading.Please reload this page.
Per the type system conformance tests,this is ok:
Whilethis is not:
Mypy currently permits both. This PR makes mypy reject the latter case, improving conformance.
As part of this, no-args PEP 613 explicit aliases are no longer eagerly expanded.
(Also removed a stale comment referencing
TypeAliasExpr.no_args, which was removed in#15924)