Skip to content

Commit 424faf1

Browse files
committed
fixup! specify that type variable tuple should have variance
1 parent c258e73 commit 424faf1

5 files changed

Lines changed: 94 additions & 17 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
conformant = "Unsupported"
2+
conformance_automated = "Fail"
3+
errors_diff = """
4+
Line 40: Expected 1 errors
5+
Line 51: Expected 1 errors
6+
Line 22: Unexpected errors ['generics_paramspec_variance.py:22:1: error: Type `ContravariantParamSpec[object]` is not assignable to `ContravariantParamSpec[int]` (type parameter is invariant) [generics_variance_inference]']
7+
Line 31: Unexpected errors ['generics_paramspec_variance.py:31:1: error: Type `CovariantParamSpec[int]` is not assignable to `CovariantParamSpec[object]` (type parameter is invariant) [generics_variance_inference]']
8+
Line 33: Unexpected errors ['generics_paramspec_variance.py:33:7: error: `ParamSpec` `InP` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]']
9+
Line 45: Unexpected errors ['generics_paramspec_variance.py:45:1: error: Type `ContravariantParamSpecOld[object]` is not assignable to `ContravariantParamSpecOld[int]` (type parameter is contravariant) [generics_variance_inference]']
10+
Line 47: Unexpected errors ['generics_paramspec_variance.py:47:8: error: `ParamSpec` `OutP` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]']
11+
Line 58: Unexpected errors ['generics_paramspec_variance.py:58:1: error: Type `CovariantParamSpecOld[int]` is not assignable to `CovariantParamSpecOld[object]` (type parameter is covariant) [generics_variance_inference]']
12+
"""
13+
output = """
14+
generics_paramspec_variance.py:14:1: error: Type `InvariantParamSpec[int]` is not assignable to `InvariantParamSpec[object]` (type parameter is invariant) [generics_variance_inference]
15+
generics_paramspec_variance.py:15:1: error: Type `InvariantParamSpec[object]` is not assignable to `InvariantParamSpec[int]` (type parameter is invariant) [generics_variance_inference]
16+
generics_paramspec_variance.py:21:1: error: Type `ContravariantParamSpec[int]` is not assignable to `ContravariantParamSpec[object]` (type parameter is invariant) [generics_variance_inference]
17+
generics_paramspec_variance.py:22:1: error: Type `ContravariantParamSpec[object]` is not assignable to `ContravariantParamSpec[int]` (type parameter is invariant) [generics_variance_inference]
18+
generics_paramspec_variance.py:30:1: error: Type `CovariantParamSpec[object]` is not assignable to `CovariantParamSpec[int]` (type parameter is invariant) [generics_variance_inference]
19+
generics_paramspec_variance.py:31:1: error: Type `CovariantParamSpec[int]` is not assignable to `CovariantParamSpec[object]` (type parameter is invariant) [generics_variance_inference]
20+
generics_paramspec_variance.py:33:7: error: `ParamSpec` `InP` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]
21+
generics_paramspec_variance.py:44:1: error: Type `ContravariantParamSpecOld[int]` is not assignable to `ContravariantParamSpecOld[object]` (type parameter is contravariant) [generics_variance_inference]
22+
generics_paramspec_variance.py:45:1: error: Type `ContravariantParamSpecOld[object]` is not assignable to `ContravariantParamSpecOld[int]` (type parameter is contravariant) [generics_variance_inference]
23+
generics_paramspec_variance.py:47:8: error: `ParamSpec` `OutP` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]
24+
generics_paramspec_variance.py:57:1: error: Type `CovariantParamSpecOld[object]` is not assignable to `CovariantParamSpecOld[int]` (type parameter is covariant) [generics_variance_inference]
25+
generics_paramspec_variance.py:58:1: error: Type `CovariantParamSpecOld[int]` is not assignable to `CovariantParamSpecOld[object]` (type parameter is covariant) [generics_variance_inference]
26+
"""

conformance/results/basilisk/generics_typevartuple_basic.toml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
conformant = "Pass"
2-
conformance_automated = "Pass"
1+
conformant = "Partial"
2+
notes = """
3+
no error when multiple tvt in a 695 style class definition
4+
"""
5+
conformance_automated = "Fail"
36
errors_diff = """
7+
Line 111: Expected 1 errors
48
"""
59
output = """
6-
generics_typevartuple_basic.py:42:28: error: TypeVarTuple shape mismatch: `Array` is declared with 2 type arguments, but the constructor argument is not a tuple expression [generics_typevartuple_args]
7-
generics_typevartuple_basic.py:43:35: error: TypeVarTuple shape mismatch: `Array` is declared with 3 type arguments, but the constructor argument is a tuple of length 2 [generics_typevartuple_args]
8-
generics_typevartuple_basic.py:44:41: error: TypeVarTuple element order mismatch: `Array` is declared `[Time, Batch, Height, Width]` but the constructor provides `[Time, Batch, Width, Height]` [generics_typevartuple_args]
9-
generics_typevartuple_basic.py:52:22: error: `TypeVarTuple` `Shape` must be unpacked with `*` in generic parameter list [generics_typevartuple_basic_2]
10-
generics_typevartuple_basic.py:53:24: error: `TypeVarTuple` `Shape` must be unpacked with `*` inside `tuple[...]` [generics_typevartuple_basic_2]
11-
generics_typevartuple_basic.py:56:28: error: `TypeVarTuple` `Shape` must be unpacked with `*` inside `tuple[...]` [generics_typevartuple_basic_2]
12-
generics_typevartuple_basic.py:59:18: error: `TypeVarTuple` `Shape` must be unpacked with `*` in annotation for `args` [generics_typevartuple_basic_2]
13-
generics_typevartuple_basic.py:65:7: error: `TypeVarTuple` `Ts1` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]
14-
generics_typevartuple_basic.py:65:7: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support variance specification [generics_typevartuple_basic_3]
10+
generics_typevartuple_basic.py:43:28: error: TypeVarTuple shape mismatch: `Array` is declared with 2 type arguments, but the constructor argument is not a tuple expression [generics_typevartuple_args]
11+
generics_typevartuple_basic.py:44:35: error: TypeVarTuple shape mismatch: `Array` is declared with 3 type arguments, but the constructor argument is a tuple of length 2 [generics_typevartuple_args]
12+
generics_typevartuple_basic.py:45:41: error: TypeVarTuple element order mismatch: `Array` is declared `[Time, Batch, Height, Width]` but the constructor provides `[Time, Batch, Width, Height]` [generics_typevartuple_args]
13+
generics_typevartuple_basic.py:53:22: error: `TypeVarTuple` `Shape` must be unpacked with `*` in generic parameter list [generics_typevartuple_basic_2]
14+
generics_typevartuple_basic.py:54:24: error: `TypeVarTuple` `Shape` must be unpacked with `*` inside `tuple[...]` [generics_typevartuple_basic_2]
15+
generics_typevartuple_basic.py:57:28: error: `TypeVarTuple` `Shape` must be unpacked with `*` inside `tuple[...]` [generics_typevartuple_basic_2]
16+
generics_typevartuple_basic.py:60:18: error: `TypeVarTuple` `Shape` must be unpacked with `*` in annotation for `args` [generics_typevartuple_basic_2]
1517
generics_typevartuple_basic.py:66:7: error: `TypeVarTuple` `Ts2` does not accept type constraint arguments [generics_typevartuple_basic]
1618
generics_typevartuple_basic.py:66:7: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support type constraints [generics_typevartuple_basic_3]
1719
generics_typevartuple_basic.py:67:7: error: `TypeVarTuple` `Ts3` does not support a `bound=` argument [generics_typevartuple_basic]
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
conformant = "Unsupported"
2+
conformance_automated = "Fail"
3+
errors_diff = """
4+
Line 16: Expected 1 errors
5+
Line 35: Expected 1 errors
6+
Line 60: Expected 1 errors
7+
Line 71: Expected 1 errors
8+
Line 24: Unexpected errors ['generics_typevartuple_variance.py:24:1: error: Type `ContravariantTypeVarTuple[object]` is not assignable to `ContravariantTypeVarTuple[int]` (type parameter is contravariant) [generics_variance_inference]']
9+
Line 33: Unexpected errors ['generics_typevartuple_variance.py:33:1: error: Type `CovariantTypeVarTuple[int]` is not assignable to `CovariantTypeVarTuple[object]` (type parameter is covariant) [generics_variance_inference]']
10+
Line 54: Unexpected errors ['generics_typevartuple_variance.py:54:8: error: `TypeVarTuple` `InTs` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]', 'generics_typevartuple_variance.py:54:8: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support variance specification [generics_typevartuple_basic_3]']
11+
Line 65: Unexpected errors ['generics_typevartuple_variance.py:65:1: error: Type `ContravariantTypeVarTupleOld[object]` is not assignable to `ContravariantTypeVarTupleOld[int]` (type parameter is contravariant) [generics_variance_inference]']
12+
Line 68: Unexpected errors ['generics_typevartuple_variance.py:68:9: error: `TypeVarTuple` `OutTs` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]', 'generics_typevartuple_variance.py:68:9: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support variance specification [generics_typevartuple_basic_3]']
13+
Line 79: Unexpected errors ['generics_typevartuple_variance.py:79:1: error: Type `CovariantTypeVarTupleOld[int]` is not assignable to `CovariantTypeVarTupleOld[object]` (type parameter is covariant) [generics_variance_inference]']
14+
"""
15+
output = """
16+
generics_typevartuple_variance.py:14:1: error: Type `InvariantTypeVarTuple[int]` is not assignable to `InvariantTypeVarTuple[object]` (type parameter is invariant) [generics_variance_inference]
17+
generics_typevartuple_variance.py:15:1: error: Type `InvariantTypeVarTuple[object]` is not assignable to `InvariantTypeVarTuple[int]` (type parameter is invariant) [generics_variance_inference]
18+
generics_typevartuple_variance.py:23:1: error: Type `ContravariantTypeVarTuple[int]` is not assignable to `ContravariantTypeVarTuple[object]` (type parameter is contravariant) [generics_variance_inference]
19+
generics_typevartuple_variance.py:24:1: error: Type `ContravariantTypeVarTuple[object]` is not assignable to `ContravariantTypeVarTuple[int]` (type parameter is contravariant) [generics_variance_inference]
20+
generics_typevartuple_variance.py:32:1: error: Type `CovariantTypeVarTuple[object]` is not assignable to `CovariantTypeVarTuple[int]` (type parameter is covariant) [generics_variance_inference]
21+
generics_typevartuple_variance.py:33:1: error: Type `CovariantTypeVarTuple[int]` is not assignable to `CovariantTypeVarTuple[object]` (type parameter is covariant) [generics_variance_inference]
22+
generics_typevartuple_variance.py:36:1: error: Type `CovariantTypeVarTuple[object]` is not assignable to `CovariantTypeVarTuple[float]` (type parameter is covariant) [generics_variance_inference]
23+
generics_typevartuple_variance.py:37:1: error: Type `CovariantTypeVarTuple[object]` is not assignable to `CovariantTypeVarTuple[float]` (type parameter is covariant) [generics_variance_inference]
24+
generics_typevartuple_variance.py:50:1: error: Type `InvariantTypeVarTupleOld[int]` is not assignable to `InvariantTypeVarTupleOld[object]` (type parameter is invariant) [generics_variance_inference]
25+
generics_typevartuple_variance.py:51:1: error: Type `InvariantTypeVarTupleOld[object]` is not assignable to `InvariantTypeVarTupleOld[int]` (type parameter is invariant) [generics_variance_inference]
26+
generics_typevartuple_variance.py:54:8: error: `TypeVarTuple` `InTs` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]
27+
generics_typevartuple_variance.py:54:8: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support variance specification [generics_typevartuple_basic_3]
28+
generics_typevartuple_variance.py:64:1: error: Type `ContravariantTypeVarTupleOld[int]` is not assignable to `ContravariantTypeVarTupleOld[object]` (type parameter is contravariant) [generics_variance_inference]
29+
generics_typevartuple_variance.py:65:1: error: Type `ContravariantTypeVarTupleOld[object]` is not assignable to `ContravariantTypeVarTupleOld[int]` (type parameter is contravariant) [generics_variance_inference]
30+
generics_typevartuple_variance.py:68:9: error: `TypeVarTuple` `OutTs` does not support `covariant` or `contravariant` arguments [generics_typevartuple_basic]
31+
generics_typevartuple_variance.py:68:9: error: Invalid `TypeVarTuple` parameters: `TypeVarTuple` does not support variance specification [generics_typevartuple_basic_3]
32+
generics_typevartuple_variance.py:78:1: error: Type `CovariantTypeVarTupleOld[object]` is not assignable to `CovariantTypeVarTupleOld[int]` (type parameter is covariant) [generics_variance_inference]
33+
generics_typevartuple_variance.py:79:1: error: Type `CovariantTypeVarTupleOld[int]` is not assignable to `CovariantTypeVarTupleOld[object]` (type parameter is covariant) [generics_variance_inference]
34+
"""

conformance/results/results.html

Lines changed: 17 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

conformance/results/ty/generics_paramspec_variance.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
conformant = "Unsupported"
1+
conformant = "Partial"
2+
notes = """
3+
Does not error when a ParamSpec is used in a position that violates its explicit variance.
4+
"""
25
conformance_automated = "Fail"
36
errors_diff = """
47
Line 40: Expected 1 errors

0 commit comments

Comments
 (0)