Skip to content

Commit 7b6a5d2

Browse files
committed
revert some questionable changes to tests around type-parameter defaults
1 parent 652dde5 commit 7b6a5d2

File tree

8 files changed

+50
-59
lines changed

8 files changed

+50
-59
lines changed

conformance/results/mypy/generics_defaults.toml

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,35 @@ generics_defaults.py:24: error: "T" cannot appear after "DefaultStrT" in type pa
44
generics_defaults.py:30: error: Expression is of type "type[NoNonDefaults[DefaultStrT, DefaultIntT]]", not "type[NoNonDefaults[str, int]]" [assert-type]
55
generics_defaults.py:31: error: Expression is of type "type[NoNonDefaults[str, DefaultIntT]]", not "type[NoNonDefaults[str, int]]" [assert-type]
66
generics_defaults.py:38: error: Expression is of type "type[OneDefault[float, DefaultBoolT]]", not "type[OneDefault[float, bool]]" [assert-type]
7-
generics_defaults.py:50: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
8-
generics_defaults.py:54: error: Type application has too few types (expected between 2 and 5) [misc]
9-
generics_defaults.py:56: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
10-
generics_defaults.py:59: error: Expression is of type "type[AllTheDefaults[int, complex, str, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
11-
generics_defaults.py:63: error: Expression is of type "type[AllTheDefaults[int, complex, str, int, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
12-
generics_defaults.py:83: error: Expression is of type "type[Class_ParamSpec[DefaultP]]", not "type[Class_ParamSpec[[str, int]]]" [assert-type]
13-
generics_defaults.py:116: error: TypeVar default must be a subtype of the bound type [misc]
14-
generics_defaults.py:123: error: TypeVar default must be one of the constraint types [misc]
15-
generics_defaults.py:141: error: Expression is of type "int", not "Any" [assert-type]
16-
generics_defaults.py:165: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [float, bool]]]" [assert-type]
17-
generics_defaults.py:165: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]
18-
generics_defaults.py:166: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [bytes]]]" [assert-type]
19-
generics_defaults.py:166: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]
7+
generics_defaults.py:45: error: Expression is of type "type[AllTheDefaults[T1, T2, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[Any, Any, str, int, bool]]" [assert-type]
8+
generics_defaults.py:46: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
9+
generics_defaults.py:50: error: Type application has too few types (expected between 2 and 5) [misc]
10+
generics_defaults.py:52: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
11+
generics_defaults.py:55: error: Expression is of type "type[AllTheDefaults[int, complex, str, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
12+
generics_defaults.py:59: error: Expression is of type "type[AllTheDefaults[int, complex, str, int, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]
13+
generics_defaults.py:79: error: Expression is of type "type[Class_ParamSpec[DefaultP]]", not "type[Class_ParamSpec[[str, int]]]" [assert-type]
14+
generics_defaults.py:94: error: Expression is of type "type[Class_TypeVarTuple[*DefaultTs]]", not "type[Class_TypeVarTuple[str, int]]" [assert-type]
15+
generics_defaults.py:107: error: TypeVar default must be a subtype of the bound type [misc]
16+
generics_defaults.py:114: error: TypeVar default must be one of the constraint types [misc]
17+
generics_defaults.py:132: error: Expression is of type "int", not "Any" [assert-type]
18+
generics_defaults.py:156: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [float, bool]]]" [assert-type]
19+
generics_defaults.py:156: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]
20+
generics_defaults.py:157: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [bytes]]]" [assert-type]
21+
generics_defaults.py:157: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]
2022
"""
2123
conformance_automated = "Fail"
2224
errors_diff = """
23-
Line 152: Expected 1 errors
25+
Line 143: Expected 1 errors
2426
Line 30: Unexpected errors ['generics_defaults.py:30: error: Expression is of type "type[NoNonDefaults[DefaultStrT, DefaultIntT]]", not "type[NoNonDefaults[str, int]]" [assert-type]']
2527
Line 31: Unexpected errors ['generics_defaults.py:31: error: Expression is of type "type[NoNonDefaults[str, DefaultIntT]]", not "type[NoNonDefaults[str, int]]" [assert-type]']
2628
Line 38: Unexpected errors ['generics_defaults.py:38: error: Expression is of type "type[OneDefault[float, DefaultBoolT]]", not "type[OneDefault[float, bool]]" [assert-type]']
27-
Line 50: Unexpected errors ['generics_defaults.py:50: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
28-
Line 56: Unexpected errors ['generics_defaults.py:56: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
29-
Line 59: Unexpected errors ['generics_defaults.py:59: error: Expression is of type "type[AllTheDefaults[int, complex, str, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
30-
Line 63: Unexpected errors ['generics_defaults.py:63: error: Expression is of type "type[AllTheDefaults[int, complex, str, int, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
31-
Line 83: Unexpected errors ['generics_defaults.py:83: error: Expression is of type "type[Class_ParamSpec[DefaultP]]", not "type[Class_ParamSpec[[str, int]]]" [assert-type]']
32-
Line 165: Unexpected errors ['generics_defaults.py:165: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [float, bool]]]" [assert-type]', 'generics_defaults.py:165: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]']
33-
Line 166: Unexpected errors ['generics_defaults.py:166: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [bytes]]]" [assert-type]', 'generics_defaults.py:166: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]']
29+
Line 45: Unexpected errors ['generics_defaults.py:45: error: Expression is of type "type[AllTheDefaults[T1, T2, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[Any, Any, str, int, bool]]" [assert-type]']
30+
Line 46: Unexpected errors ['generics_defaults.py:46: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
31+
Line 52: Unexpected errors ['generics_defaults.py:52: error: Expression is of type "type[AllTheDefaults[int, complex, DefaultStrT, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
32+
Line 55: Unexpected errors ['generics_defaults.py:55: error: Expression is of type "type[AllTheDefaults[int, complex, str, DefaultIntT, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
33+
Line 59: Unexpected errors ['generics_defaults.py:59: error: Expression is of type "type[AllTheDefaults[int, complex, str, int, DefaultBoolT]]", not "type[AllTheDefaults[int, complex, str, int, bool]]" [assert-type]']
34+
Line 79: Unexpected errors ['generics_defaults.py:79: error: Expression is of type "type[Class_ParamSpec[DefaultP]]", not "type[Class_ParamSpec[[str, int]]]" [assert-type]']
35+
Line 94: Unexpected errors ['generics_defaults.py:94: error: Expression is of type "type[Class_TypeVarTuple[*DefaultTs]]", not "type[Class_TypeVarTuple[str, int]]" [assert-type]']
36+
Line 156: Unexpected errors ['generics_defaults.py:156: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [float, bool]]]" [assert-type]', 'generics_defaults.py:156: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]']
37+
Line 157: Unexpected errors ['generics_defaults.py:157: error: Expression is of type "type[Foo6[*tuple[Any, ...], Any]]", not "type[Foo6[int, str, [bytes]]]" [assert-type]', 'generics_defaults.py:157: error: Can only replace ParamSpec with a parameter types list or another ParamSpec, got "str" [misc]']
3438
"""

conformance/results/mypy/generics_defaults_referential.toml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ generics_defaults_referential.py:53: error: Type parameter "Start2T" has a defau
66
generics_defaults_referential.py:74: error: TypeVar default must be one of the constraint types [misc]
77
generics_defaults_referential.py:77: error: TypeVar default must be one of the constraint types [misc]
88
generics_defaults_referential.py:78: error: TypeVar default must be one of the constraint types [misc]
9-
generics_defaults_referential.py:101: error: Expression is of type "type[Bar[int, ListDefaultT]]", not "type[Bar[int, list[int]]]" [assert-type]
10-
generics_defaults_referential.py:102: error: Expression is of type "Bar[int, list[Never]]", not "Bar[int, list[int]]" [assert-type]
9+
generics_defaults_referential.py:94: error: Expression is of type "type[Bar[Z1, ListDefaultT]]", not "type[Bar[Any, list[Any]]]" [assert-type]
10+
generics_defaults_referential.py:95: error: Expression is of type "type[Bar[int, ListDefaultT]]", not "type[Bar[int, list[int]]]" [assert-type]
11+
generics_defaults_referential.py:96: error: Expression is of type "Bar[int, list[Never]]", not "Bar[int, list[int]]" [assert-type]
1112
"""
1213
conformance_automated = "Fail"
1314
errors_diff = """
@@ -16,6 +17,7 @@ Line 60: Expected 1 errors
1617
Line 68: Expected 1 errors
1718
Line 23: Unexpected errors ['generics_defaults_referential.py:23: error: Expression is of type "type[slice[StartT, StopT, StepT]]", not "type[slice[int, int, int | None]]" [assert-type]']
1819
Line 77: Unexpected errors ['generics_defaults_referential.py:77: error: TypeVar default must be one of the constraint types [misc]']
19-
Line 101: Unexpected errors ['generics_defaults_referential.py:101: error: Expression is of type "type[Bar[int, ListDefaultT]]", not "type[Bar[int, list[int]]]" [assert-type]']
20-
Line 102: Unexpected errors ['generics_defaults_referential.py:102: error: Expression is of type "Bar[int, list[Never]]", not "Bar[int, list[int]]" [assert-type]']
20+
Line 94: Unexpected errors ['generics_defaults_referential.py:94: error: Expression is of type "type[Bar[Z1, ListDefaultT]]", not "type[Bar[Any, list[Any]]]" [assert-type]']
21+
Line 95: Unexpected errors ['generics_defaults_referential.py:95: error: Expression is of type "type[Bar[int, ListDefaultT]]", not "type[Bar[int, list[int]]]" [assert-type]']
22+
Line 96: Unexpected errors ['generics_defaults_referential.py:96: error: Expression is of type "Bar[int, list[Never]]", not "Bar[int, list[int]]" [assert-type]']
2123
"""

conformance/results/pyrefly/generics_defaults.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ errors_diff = """
33
"""
44
output = """
55
ERROR generics_defaults.py:24:7-31: Type parameter `T` without a default cannot follow type parameter `DefaultStrT` with a default [invalid-type-var]
6-
ERROR generics_defaults.py:54:1-20: Expected 5 type arguments for `AllTheDefaults`, got 1 [bad-specialization]
7-
ERROR generics_defaults.py:116:51-54: Expected default `int` of `Invalid1` to be assignable to the upper bound of `str` [invalid-type-var]
8-
ERROR generics_defaults.py:123:52-55: Expected default `int` of `Invalid2` to be one of the following constraints: `float`, `str` [invalid-type-var]
9-
ERROR generics_defaults.py:141:12-27: assert_type(int, Any) failed [assert-type]
10-
ERROR generics_defaults.py:152:7-11: TypeVar `T5` with a default cannot follow TypeVarTuple `Ts` [invalid-type-var]
6+
ERROR generics_defaults.py:50:1-20: Expected 5 type arguments for `AllTheDefaults`, got 1 [bad-specialization]
7+
ERROR generics_defaults.py:107:51-54: Expected default `int` of `Invalid1` to be assignable to the upper bound of `str` [invalid-type-var]
8+
ERROR generics_defaults.py:114:52-55: Expected default `int` of `Invalid2` to be one of the following constraints: `float`, `str` [invalid-type-var]
9+
ERROR generics_defaults.py:132:12-27: assert_type(int, Any) failed [assert-type]
10+
ERROR generics_defaults.py:143:7-11: TypeVar `T5` with a default cannot follow TypeVarTuple `Ts` [invalid-type-var]
1111
"""

conformance/results/pyright/generics_defaults.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
conformant = "Pass"
22
output = """
33
generics_defaults.py:24:7 - error: "T" cannot appear after "DefaultStrT" in type parameter list because it has no default type (reportGeneralTypeIssues)
4-
generics_defaults.py:54:16 - error: Too few type arguments provided for "AllTheDefaults"; expected 2 but received 1 (reportInvalidTypeArguments)
5-
generics_defaults.py:116:51 - error: TypeVar default type must be a subtype of the bound type (reportGeneralTypeIssues)
6-
generics_defaults.py:123:52 - error: TypeVar default type must be one of the constrained types (reportGeneralTypeIssues)
7-
generics_defaults.py:141:13 - error: "assert_type" mismatch: expected "Any" but received "int" (reportAssertTypeFailure)
8-
generics_defaults.py:152:7 - error: TypeVar "T5" has a default value and cannot follow TypeVarTuple "Ts" (reportGeneralTypeIssues)
4+
generics_defaults.py:50:16 - error: Too few type arguments provided for "AllTheDefaults"; expected 2 but received 1 (reportInvalidTypeArguments)
5+
generics_defaults.py:107:51 - error: TypeVar default type must be a subtype of the bound type (reportGeneralTypeIssues)
6+
generics_defaults.py:114:52 - error: TypeVar default type must be one of the constrained types (reportGeneralTypeIssues)
7+
generics_defaults.py:132:13 - error: "assert_type" mismatch: expected "Any" but received "int" (reportAssertTypeFailure)
8+
generics_defaults.py:143:7 - error: TypeVar "T5" has a default value and cannot follow TypeVarTuple "Ts" (reportGeneralTypeIssues)
99
"""
1010
conformance_automated = "Pass"
1111
errors_diff = """

conformance/results/zuban/generics_defaults.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ errors_diff = """
33
"""
44
output = """
55
generics_defaults.py:24: error: "T" cannot appear after "DefaultStrT" in type parameter list because it has no default type [misc]
6-
generics_defaults.py:54: error: "AllTheDefaults" expects between 2 and 5 type arguments, but 1 given [type-arg]
7-
generics_defaults.py:116: error: TypeVar default must be a subtype of the bound type [misc]
8-
generics_defaults.py:123: error: TypeVar default must be one of the constraint types [misc]
9-
generics_defaults.py:141: error: Expression is of type "int", not "Any" [misc]
10-
generics_defaults.py:152: error: TypeVar defaults are ambiguous after a TypeVarTuple [misc]
6+
generics_defaults.py:50: error: "AllTheDefaults" expects between 2 and 5 type arguments, but 1 given [type-arg]
7+
generics_defaults.py:107: error: TypeVar default must be a subtype of the bound type [misc]
8+
generics_defaults.py:114: error: TypeVar default must be one of the constraint types [misc]
9+
generics_defaults.py:132: error: Expression is of type "int", not "Any" [misc]
10+
generics_defaults.py:143: error: TypeVar defaults are ambiguous after a TypeVarTuple [misc]
1111
"""

conformance/tests/generics_defaults.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,8 @@ class OneDefault(Generic[T, DefaultBoolT]): ...
4141

4242
class AllTheDefaults(Generic[T1, T2, DefaultStrT, DefaultIntT, DefaultBoolT]): ...
4343

44-
def needs_allthedefaults_or_subclass(x: type[AllTheDefaults[Any, Any, str, int, bool]]) -> None: ...
45-
46-
# do not use `assert_type` here: some type checkers infer a more precise type
47-
# than `type[]` for class objects
48-
needs_allthedefaults_or_subclass(AllTheDefaults) # OK
4944

45+
assert_type(AllTheDefaults, type[AllTheDefaults[Any, Any, str, int, bool]])
5046
assert_type(
5147
AllTheDefaults[int, complex], type[AllTheDefaults[int, complex, str, int, bool]]
5248
)
@@ -95,12 +91,7 @@ class Class_ParamSpec(Generic[DefaultP]): ...
9591
class Class_TypeVarTuple(Generic[*DefaultTs]): ...
9692

9793

98-
def needs_classtypevartuple_or_subclass(x: type[Class_TypeVarTuple[Any, Any]]) -> None: ...
99-
100-
# do not use `assert_type` here: some type checkers infer a more precise type
101-
# than `type[]` for class objects
102-
needs_classtypevartuple_or_subclass(Class_TypeVarTuple) # OK
103-
94+
assert_type(Class_TypeVarTuple, type[Class_TypeVarTuple[*tuple[str, int]]])
10495
assert_type(Class_TypeVarTuple(), Class_TypeVarTuple[str, int])
10596
assert_type(Class_TypeVarTuple[int, bool](), Class_TypeVarTuple[int, bool])
10697

conformance/tests/generics_defaults_referential.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,7 @@ class Bar(Generic[Z1, ListDefaultT]): # OK
9191
def __init__(self, x: Z1, y: ListDefaultT): ...
9292

9393

94-
def requires_bar_or_subclass(x: type[Bar[Any, list[Any]]]) -> None: ...
95-
96-
# Don't use `assert_type(Bar, type[Bar[Any, list[Any]]])` here,
97-
# since some type checkers infer a more precise type than `type[]` for
98-
# class objects
99-
requires_bar_or_subclass(Bar) # OK
100-
94+
assert_type(Bar, type[Bar[Any, list[Any]]])
10195
assert_type(Bar[int], type[Bar[int, list[int]]])
10296
assert_type(Bar[int](0, []), Bar[int, list[int]])
10397
assert_type(Bar[int, list[str]](0, []), Bar[int, list[str]])

conformance/tests/generics_syntax_scoping.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Specification: https://peps.python.org/pep-0695/#type-parameter-scopes
66

7-
from typing import Callable, Mapping, Literal, Sequence, TypeVar, assert_type
7+
from typing import Callable, Mapping, Sequence, TypeVar, assert_type
88

99
# > A compiler error or runtime exception is generated if the definition
1010
# > of an earlier type parameter references a later type parameter even

0 commit comments

Comments
 (0)