Skip to content

Commit 75caed7

Browse files
authored
Added conformance checking for the "converter" field specifier parame… (#1813)
Added conformance checking for the "converter" field specifier parameter in dataclass_transform. None of the type checkers support it currently.
1 parent dc1698d commit 75caed7

9 files changed

+347
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
conformant = "Unsupported"
2+
notes = """
3+
Converter parameter not yet supported.
4+
"""
5+
conformance_automated = "Fail"
6+
errors_diff = """
7+
Line 47: Expected 1 errors
8+
Line 48: Expected 1 errors
9+
Line 117: Expected 1 errors
10+
Line 129: Expected 1 errors
11+
Line 132: Expected 1 errors
12+
Line 111: Unexpected errors ['dataclasses_transform_converter.py:111: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:111: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:111: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:111: error: Argument 4 to "DC2" has incompatible type "bytes"; expected "ConverterClass" [arg-type]', 'dataclasses_transform_converter.py:111: error: Argument 5 to "DC2" has incompatible type "list[Never]"; expected "int" [arg-type]']
13+
Line 113: Unexpected errors ['dataclasses_transform_converter.py:113: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment]']
14+
Line 114: Unexpected errors ['dataclasses_transform_converter.py:114: error: Incompatible types in assignment (expression has type "str", variable has type "ConverterClass") [assignment]']
15+
Line 115: Unexpected errors ['dataclasses_transform_converter.py:115: error: Incompatible types in assignment (expression has type "bytes", variable has type "ConverterClass") [assignment]']
16+
Line 120: Unexpected errors ['dataclasses_transform_converter.py:120: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:120: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:120: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:120: error: Argument 4 to "DC2" has incompatible type "str"; expected "ConverterClass" [arg-type]', 'dataclasses_transform_converter.py:120: error: Argument 5 to "DC2" has incompatible type "str"; expected "int" [arg-type]', 'dataclasses_transform_converter.py:120: error: Argument 6 to "DC2" has incompatible type "tuple[tuple[str, str], tuple[str, str]]"; expected "dict[str, str]" [arg-type]']
17+
"""
18+
output = """
19+
dataclasses_transform_converter.py:106: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]
20+
dataclasses_transform_converter.py:106: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]
21+
dataclasses_transform_converter.py:106: error: Argument 4 to "DC2" has incompatible type "bytes"; expected "ConverterClass" [arg-type]
22+
dataclasses_transform_converter.py:106: error: Argument 5 to "DC2" has incompatible type "list[Never]"; expected "int" [arg-type]
23+
dataclasses_transform_converter.py:107: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]
24+
dataclasses_transform_converter.py:107: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]
25+
dataclasses_transform_converter.py:107: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]
26+
dataclasses_transform_converter.py:107: error: Argument 4 to "DC2" has incompatible type "int"; expected "ConverterClass" [arg-type]
27+
dataclasses_transform_converter.py:107: error: Argument 5 to "DC2" has incompatible type "list[Never]"; expected "int" [arg-type]
28+
dataclasses_transform_converter.py:108: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]
29+
dataclasses_transform_converter.py:108: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]
30+
dataclasses_transform_converter.py:108: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]
31+
dataclasses_transform_converter.py:108: error: Argument 4 to "DC2" has incompatible type "str"; expected "ConverterClass" [arg-type]
32+
dataclasses_transform_converter.py:108: error: Argument 5 to "DC2" has incompatible type "complex"; expected "int" [arg-type]
33+
dataclasses_transform_converter.py:111: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]
34+
dataclasses_transform_converter.py:111: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]
35+
dataclasses_transform_converter.py:111: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]
36+
dataclasses_transform_converter.py:111: error: Argument 4 to "DC2" has incompatible type "bytes"; expected "ConverterClass" [arg-type]
37+
dataclasses_transform_converter.py:111: error: Argument 5 to "DC2" has incompatible type "list[Never]"; expected "int" [arg-type]
38+
dataclasses_transform_converter.py:113: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment]
39+
dataclasses_transform_converter.py:114: error: Incompatible types in assignment (expression has type "str", variable has type "ConverterClass") [assignment]
40+
dataclasses_transform_converter.py:115: error: Incompatible types in assignment (expression has type "bytes", variable has type "ConverterClass") [assignment]
41+
dataclasses_transform_converter.py:118: error: Incompatible types in assignment (expression has type "int", variable has type "ConverterClass") [assignment]
42+
dataclasses_transform_converter.py:120: error: Argument 1 to "DC2" has incompatible type "str"; expected "int" [arg-type]
43+
dataclasses_transform_converter.py:120: error: Argument 2 to "DC2" has incompatible type "str"; expected "int" [arg-type]
44+
dataclasses_transform_converter.py:120: error: Argument 3 to "DC2" has incompatible type "str"; expected "int" [arg-type]
45+
dataclasses_transform_converter.py:120: error: Argument 4 to "DC2" has incompatible type "str"; expected "ConverterClass" [arg-type]
46+
dataclasses_transform_converter.py:120: error: Argument 5 to "DC2" has incompatible type "str"; expected "int" [arg-type]
47+
dataclasses_transform_converter.py:120: error: Argument 6 to "DC2" has incompatible type "tuple[tuple[str, str], tuple[str, str]]"; expected "dict[str, str]" [arg-type]
48+
"""
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
conformant = "Unsupported"
2+
notes = """
3+
Converter parameter not yet supported.
4+
"""
5+
conformance_automated = "Fail"
6+
errors_diff = """
7+
Line 47: Expected 1 errors
8+
Line 48: Expected 1 errors
9+
Line 117: Expected 1 errors
10+
Line 129: Expected 1 errors
11+
Line 132: Expected 1 errors
12+
Line 111: Unexpected errors ['dataclasses_transform_converter.py:111:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:111:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:111:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:111:28 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `bytes`.', 'dataclasses_transform_converter.py:111:35 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `List[Variable[_T]]`.']
13+
Line 113: Unexpected errors ['dataclasses_transform_converter.py:113:0 Incompatible attribute type [8]: Attribute `field0` declared in class `DC2` has type `int` but is used as type `str`.']
14+
Line 114: Unexpected errors ['dataclasses_transform_converter.py:114:0 Incompatible attribute type [8]: Attribute `field3` declared in class `DC2` has type `ConverterClass` but is used as type `str`.']
15+
Line 115: Unexpected errors ['dataclasses_transform_converter.py:115:0 Incompatible attribute type [8]: Attribute `field3` declared in class `DC2` has type `ConverterClass` but is used as type `bytes`.']
16+
Line 120: Unexpected errors ['dataclasses_transform_converter.py:120:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:120:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:120:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:120:28 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `str`.', 'dataclasses_transform_converter.py:120:34 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `str`.', 'dataclasses_transform_converter.py:120:39 Incompatible parameter type [6]: In call `DC2.__init__`, for 6th positional argument, expected `Dict[str, str]` but got `Tuple[Tuple[str, str], Tuple[str, str]]`.']
17+
"""
18+
output = """
19+
dataclasses_transform_converter.py:106:7 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.
20+
dataclasses_transform_converter.py:106:13 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.
21+
dataclasses_transform_converter.py:106:19 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `bytes`.
22+
dataclasses_transform_converter.py:106:26 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `List[Variable[_T]]`.
23+
dataclasses_transform_converter.py:107:4 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.
24+
dataclasses_transform_converter.py:107:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.
25+
dataclasses_transform_converter.py:107:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.
26+
dataclasses_transform_converter.py:107:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `int`.
27+
dataclasses_transform_converter.py:107:25 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `List[Variable[_T]]`.
28+
dataclasses_transform_converter.py:108:4 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.
29+
dataclasses_transform_converter.py:108:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.
30+
dataclasses_transform_converter.py:108:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.
31+
dataclasses_transform_converter.py:108:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `str`.
32+
dataclasses_transform_converter.py:108:28 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `complex`.
33+
dataclasses_transform_converter.py:111:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.
34+
dataclasses_transform_converter.py:111:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.
35+
dataclasses_transform_converter.py:111:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.
36+
dataclasses_transform_converter.py:111:28 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `bytes`.
37+
dataclasses_transform_converter.py:111:35 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `List[Variable[_T]]`.
38+
dataclasses_transform_converter.py:113:0 Incompatible attribute type [8]: Attribute `field0` declared in class `DC2` has type `int` but is used as type `str`.
39+
dataclasses_transform_converter.py:114:0 Incompatible attribute type [8]: Attribute `field3` declared in class `DC2` has type `ConverterClass` but is used as type `str`.
40+
dataclasses_transform_converter.py:115:0 Incompatible attribute type [8]: Attribute `field3` declared in class `DC2` has type `ConverterClass` but is used as type `bytes`.
41+
dataclasses_transform_converter.py:118:0 Incompatible attribute type [8]: Attribute `field3` declared in class `DC2` has type `ConverterClass` but is used as type `int`.
42+
dataclasses_transform_converter.py:120:10 Incompatible parameter type [6]: In call `DC2.__init__`, for 1st positional argument, expected `int` but got `str`.
43+
dataclasses_transform_converter.py:120:16 Incompatible parameter type [6]: In call `DC2.__init__`, for 2nd positional argument, expected `int` but got `str`.
44+
dataclasses_transform_converter.py:120:22 Incompatible parameter type [6]: In call `DC2.__init__`, for 3rd positional argument, expected `int` but got `str`.
45+
dataclasses_transform_converter.py:120:28 Incompatible parameter type [6]: In call `DC2.__init__`, for 4th positional argument, expected `ConverterClass` but got `str`.
46+
dataclasses_transform_converter.py:120:34 Incompatible parameter type [6]: In call `DC2.__init__`, for 5th positional argument, expected `int` but got `str`.
47+
dataclasses_transform_converter.py:120:39 Incompatible parameter type [6]: In call `DC2.__init__`, for 6th positional argument, expected `Dict[str, str]` but got `Tuple[Tuple[str, str], Tuple[str, str]]`.
48+
"""

conformance/results/pyre/version.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
version = "pyre 0.9.22"
2-
test_duration = 2.8
2+
test_duration = 3.4

0 commit comments

Comments
 (0)