Skip to content

Commit da91b27

Browse files
Do not strip away generic parameters explicitly set to Any (#467)
1 parent 24f646a commit da91b27

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

docs/changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Unreleased
44

5+
- Do not strip away generic parameters explicitly set to
6+
`Any` (#467)
57
- Fix bug that led to some overloaded calls incorrectly
68
resolving to `Any` (#462)
79
- Support `__init__` and `__new__` signatures from typeshed (#429)

pyanalyze/annotations.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,8 +1069,6 @@ def _value_of_origin_args(
10691069
origin = _maybe_get_extra(origin)
10701070
if args:
10711071
args_vals = [_type_from_runtime(val, ctx) for val in args]
1072-
if all(isinstance(val, AnyValue) for val in args_vals):
1073-
return _maybe_typed_value(origin)
10741072
return GenericValue(origin, args_vals)
10751073
else:
10761074
return _maybe_typed_value(origin)

pyanalyze/test_annotations.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,12 @@ def rgx(m: Match[str], p: Pattern[bytes]) -> None:
7575

7676
@assert_passes()
7777
def test_generic(self):
78-
from typing import List
78+
from typing import List, Any
7979

80-
def capybara(x: List[int], y: List) -> None:
80+
def capybara(x: List[int], y: List, z: List[Any]) -> None:
8181
assert_is_value(x, GenericValue(list, [TypedValue(int)]))
8282
assert_is_value(y, TypedValue(list))
83+
assert_is_value(z, GenericValue(list, [AnyValue(AnySource.explicit)]))
8384

8485
@assert_passes()
8586
def test_supports_int(self):

0 commit comments

Comments
 (0)