Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ Test cases support the following special comments for declaring where errors sho
* `# E[tag]`, where `tag` is an arbitrary string: must appear multiple times in a file with the same tag.
Exactly one line with this tag must raise an error.
* `# E[tag+]`: like `# E[tag]`, but errors may be raised on multiple lines.
* `# E[tag!]`: like `# E[tag]`, but at least one line must not raise an error.

Each comment may be followed by a colon plus an explanation of the error; the explanation is ignored
by the scoring system.
Expand Down
83 changes: 45 additions & 38 deletions conformance/results/mypy/qualifiers_final_annotation.toml
Original file line number Diff line number Diff line change
@@ -1,50 +1,57 @@
conformant = "Partial"
notes = """
Infers invalid `Literal` values from `float`.
Does not treat use of `Final` name as if it was replaced by the literal in `NamedTuple` definition.
Does not allow conditional assignment of `Final` instance variable in `__init__` method.
Does not allow redefinition of private class variable that is marked `Final` in parent class.
Does not report modification of local `Final` variable via `for` statement.
"""
output = """
qualifiers_final_annotation.py:16: error: Type in Final[...] can only be omitted if there is an initializer [misc]
qualifiers_final_annotation.py:18: error: Final[...] takes at most one type argument [misc]
qualifiers_final_annotation.py:34: error: Type in Final[...] can only be omitted if there is an initializer [misc]
qualifiers_final_annotation.py:38: error: Final name must be initialized with a value [misc]
qualifiers_final_annotation.py:54: error: Cannot assign to final attribute "ID5" [misc]
qualifiers_final_annotation.py:59: error: Cannot assign to final attribute "ID6" [misc]
qualifiers_final_annotation.py:62: error: Can only declare a final attribute in class body or __init__ [misc]
qualifiers_final_annotation.py:63: error: Can only declare a final attribute in class body or __init__ [misc]
qualifiers_final_annotation.py:65: error: Cannot assign to final attribute "ID7" [misc]
qualifiers_final_annotation.py:67: error: Cannot assign to final attribute "ID7" [misc]
qualifiers_final_annotation.py:71: error: Cannot assign to final name "RATE" [misc]
qualifiers_final_annotation.py:81: error: Cannot assign to final attribute "DEFAULT_ID" [misc]
qualifiers_final_annotation.py:94: error: Cannot assign to final name "BORDER_WIDTH" [misc]
qualifiers_final_annotation.py:96: error: Cannot assign to final name "__private" [misc]
qualifiers_final_annotation.py:107: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:108: error: Variable should not be annotated with both ClassVar and Final [misc]
qualifiers_final_annotation.py:118: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:121: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:131: error: Final[...] can't be used inside a TypedDict [valid-type]
qualifiers_final_annotation.py:136: error: Final[...] can't be used inside a NamedTuple [valid-type]
qualifiers_final_annotation.py:145: error: Invalid "NamedTuple()" field name [misc]
qualifiers_final_annotation.py:147: error: Unexpected keyword argument "x" for "N" [call-arg]
qualifiers_final_annotation.py:147: error: Unexpected keyword argument "y" for "N" [call-arg]
qualifiers_final_annotation.py:148: error: Unexpected keyword argument "a" for "N" [call-arg]
qualifiers_final_annotation.py:149: error: Unexpected keyword argument "x" for "N" [call-arg]
qualifiers_final_annotation.py:149: error: Unexpected keyword argument "y" for "N" [call-arg]
qualifiers_final_annotation.py:155: error: Cannot assign to final name "ID1" [misc]
qualifiers_final_annotation.py:159: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:161: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:166: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "int") [assignment]
qualifiers_final_annotation.py:169: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:180: error: Cannot assign to final name "TEN" [misc]
qualifiers_final_annotation.py:184: error: Cannot assign to final name "PI" [misc]
qualifiers_final_annotation.py:24: error: Expression is of type "Literal[3]", not "int" [assert-type]
qualifiers_final_annotation.py:29: error: Expression is of type "Literal[3.14]", not "float" [assert-type]
qualifiers_final_annotation.py:30: error: Expression is of type "Literal[3.14]", not "float | int" [assert-type]
qualifiers_final_annotation.py:37: error: Type in Final[...] can only be omitted if there is an initializer [misc]
qualifiers_final_annotation.py:39: error: Final[...] takes at most one type argument [misc]
qualifiers_final_annotation.py:55: error: Type in Final[...] can only be omitted if there is an initializer [misc]
qualifiers_final_annotation.py:59: error: Final name must be initialized with a value [misc]
qualifiers_final_annotation.py:75: error: Cannot assign to final attribute "ID5" [misc]
qualifiers_final_annotation.py:80: error: Cannot assign to final attribute "ID6" [misc]
qualifiers_final_annotation.py:83: error: Can only declare a final attribute in class body or __init__ [misc]
qualifiers_final_annotation.py:84: error: Can only declare a final attribute in class body or __init__ [misc]
qualifiers_final_annotation.py:86: error: Cannot assign to final attribute "ID7" [misc]
qualifiers_final_annotation.py:88: error: Cannot assign to final attribute "ID7" [misc]
qualifiers_final_annotation.py:92: error: Cannot assign to final name "RATE" [misc]
qualifiers_final_annotation.py:102: error: Cannot assign to final attribute "DEFAULT_ID" [misc]
qualifiers_final_annotation.py:115: error: Cannot assign to final name "BORDER_WIDTH" [misc]
qualifiers_final_annotation.py:117: error: Cannot assign to final name "__private" [misc]
qualifiers_final_annotation.py:128: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:129: error: Variable should not be annotated with both ClassVar and Final [misc]
qualifiers_final_annotation.py:139: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:142: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type]
qualifiers_final_annotation.py:152: error: Final[...] can't be used inside a TypedDict [valid-type]
qualifiers_final_annotation.py:157: error: Final[...] can't be used inside a NamedTuple [valid-type]
qualifiers_final_annotation.py:166: error: Invalid "NamedTuple()" field name [misc]
qualifiers_final_annotation.py:168: error: Unexpected keyword argument "x" for "N" [call-arg]
qualifiers_final_annotation.py:168: error: Unexpected keyword argument "y" for "N" [call-arg]
qualifiers_final_annotation.py:169: error: Unexpected keyword argument "a" for "N" [call-arg]
qualifiers_final_annotation.py:170: error: Unexpected keyword argument "x" for "N" [call-arg]
qualifiers_final_annotation.py:170: error: Unexpected keyword argument "y" for "N" [call-arg]
qualifiers_final_annotation.py:178: error: Cannot assign to final name "ID1" [misc]
qualifiers_final_annotation.py:182: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:184: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:189: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "int") [assignment]
qualifiers_final_annotation.py:192: error: Cannot assign to final name "x" [misc]
qualifiers_final_annotation.py:203: error: Cannot assign to final name "TEN" [misc]
qualifiers_final_annotation.py:207: error: Cannot assign to final name "PI" [misc]
"""
conformance_automated = "Fail"
errors_diff = """
Line 163: Expected 1 errors
Line 59: Unexpected errors ['qualifiers_final_annotation.py:59: error: Cannot assign to final attribute "ID6" [misc]']
Line 96: Unexpected errors ['qualifiers_final_annotation.py:96: error: Cannot assign to final name "__private" [misc]']
Line 145: Unexpected errors ['qualifiers_final_annotation.py:145: error: Invalid "NamedTuple()" field name [misc]']
Line 147: Unexpected errors ['qualifiers_final_annotation.py:147: error: Unexpected keyword argument "x" for "N" [call-arg]', 'qualifiers_final_annotation.py:147: error: Unexpected keyword argument "y" for "N" [call-arg]']
Line 186: Expected 1 errors
Lines 29, 30: Expected at least one success (tag 'bare3')
Line 29: Unexpected errors ['qualifiers_final_annotation.py:29: error: Expression is of type "Literal[3.14]", not "float" [assert-type]']
Line 30: Unexpected errors ['qualifiers_final_annotation.py:30: error: Expression is of type "Literal[3.14]", not "float | int" [assert-type]']
Line 80: Unexpected errors ['qualifiers_final_annotation.py:80: error: Cannot assign to final attribute "ID6" [misc]']
Line 117: Unexpected errors ['qualifiers_final_annotation.py:117: error: Cannot assign to final name "__private" [misc]']
Line 166: Unexpected errors ['qualifiers_final_annotation.py:166: error: Invalid "NamedTuple()" field name [misc]']
Line 168: Unexpected errors ['qualifiers_final_annotation.py:168: error: Unexpected keyword argument "x" for "N" [call-arg]', 'qualifiers_final_annotation.py:168: error: Unexpected keyword argument "y" for "N" [call-arg]']
"""
74 changes: 43 additions & 31 deletions conformance/results/pycroscope/qualifiers_final_annotation.toml
Original file line number Diff line number Diff line change
@@ -1,35 +1,47 @@
conformance_automated = "Pass"
conformant = "Partial"
notes = """
Infers invalid `Literal` values from `float` and `range`.
"""
conformance_automated = "Fail"
errors_diff = """
Lines 29, 30: Expected at least one success (tag 'bare3')
Line 29: Unexpected errors ['./qualifiers_final_annotation.py:29:12: Literal[3.14] is not equivalent to float | int']
Line 30: Unexpected errors ['./qualifiers_final_annotation.py:30:12: Literal[3.14] is not equivalent to float | int']
Line 33: Unexpected errors ['./qualifiers_final_annotation.py:33:12: Literal[range(0, 3)] is not equivalent to range']
"""
output = """
./qualifiers_final_annotation.py:16:6: Final annotation without assignment requires an explicit type [invalid_qualifier]
./qualifiers_final_annotation.py:18:6: Invalid type annotation (<class 'str'>, <class 'int'>) [invalid_annotation]
./qualifiers_final_annotation.py:34:9: Final annotation without assignment requires an explicit type [invalid_qualifier]
./qualifiers_final_annotation.py:34:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:38:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:54:8: Cannot assign to final name ID5 [incompatible_assignment]
./qualifiers_final_annotation.py:62:18: Final instance attributes may be declared only in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:63:18: Final instance attributes may be declared only in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:65:8: Cannot assign to final name ID7 [incompatible_assignment]
./qualifiers_final_annotation.py:67:8: Cannot assign to final name ID7 [incompatible_assignment]
./qualifiers_final_annotation.py:71:0: Cannot assign to final name RATE [incompatible_assignment]
./qualifiers_final_annotation.py:81:0: Cannot assign to final name DEFAULT_ID [incompatible_assignment]
./qualifiers_final_annotation.py:94:4: Cannot override final attribute BORDER_WIDTH [incompatible_override]
./qualifiers_final_annotation.py:107:12: Final cannot be combined with ClassVar [invalid_qualifier]
./qualifiers_final_annotation.py:108:12: Final cannot be combined with ClassVar [invalid_qualifier]
./qualifiers_final_annotation.py:118:3: Unrecognized annotation typing.Final[<class 'int'>] [invalid_annotation]
./qualifiers_final_annotation.py:121:13: Unexpected Final annotation [invalid_qualifier]
./qualifiers_final_annotation.py:131:7: Unexpected Final annotation [invalid_qualifier]
./qualifiers_final_annotation.py:136:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:148:0: In call to pycroscope.signature.N: Missing required argument 'x' [incompatible_call]
./qualifiers_final_annotation.py:149:4: Incompatible argument type for x: expected int but got Literal[''] [incompatible_argument]
./qualifiers_final_annotation.py:149:10: Incompatible argument type for y: expected int but got Literal[''] [incompatible_argument]
./qualifiers_final_annotation.py:155:4: Cannot assign to final name ID1 [incompatible_assignment]
./qualifiers_final_annotation.py:159:4: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:161:9: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:163:8: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:166:29: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:169:8: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:180:0: Cannot assign to final name TEN [incompatible_assignment]
./qualifiers_final_annotation.py:184:0: Cannot assign to final name PI [incompatible_assignment]
./qualifiers_final_annotation.py:24:12: Literal[3] is not equivalent to int
./qualifiers_final_annotation.py:29:12: Literal[3.14] is not equivalent to float | int
./qualifiers_final_annotation.py:30:12: Literal[3.14] is not equivalent to float | int
./qualifiers_final_annotation.py:33:12: Literal[range(0, 3)] is not equivalent to range
./qualifiers_final_annotation.py:37:6: Final annotation without assignment requires an explicit type [invalid_qualifier]
./qualifiers_final_annotation.py:39:6: Invalid type annotation (<class 'str'>, <class 'int'>) [invalid_annotation]
./qualifiers_final_annotation.py:55:9: Final annotation without assignment requires an explicit type [invalid_qualifier]
./qualifiers_final_annotation.py:55:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:59:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:75:8: Cannot assign to final name ID5 [incompatible_assignment]
./qualifiers_final_annotation.py:83:18: Final instance attributes may be declared only in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:84:18: Final instance attributes may be declared only in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:86:8: Cannot assign to final name ID7 [incompatible_assignment]
./qualifiers_final_annotation.py:88:8: Cannot assign to final name ID7 [incompatible_assignment]
./qualifiers_final_annotation.py:92:0: Cannot assign to final name RATE [incompatible_assignment]
./qualifiers_final_annotation.py:102:0: Cannot assign to final name DEFAULT_ID [incompatible_assignment]
./qualifiers_final_annotation.py:115:4: Cannot override final attribute BORDER_WIDTH [incompatible_override]
./qualifiers_final_annotation.py:128:12: Final cannot be combined with ClassVar [invalid_qualifier]
./qualifiers_final_annotation.py:129:12: Final cannot be combined with ClassVar [invalid_qualifier]
./qualifiers_final_annotation.py:139:3: Unrecognized annotation typing.Final[<class 'int'>] [invalid_annotation]
./qualifiers_final_annotation.py:142:13: Unexpected Final annotation [invalid_qualifier]
./qualifiers_final_annotation.py:152:7: Unexpected Final annotation [invalid_qualifier]
./qualifiers_final_annotation.py:157:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier]
./qualifiers_final_annotation.py:169:0: In call to pycroscope.signature.N: Missing required argument 'x' [incompatible_call]
./qualifiers_final_annotation.py:170:4: Incompatible argument type for x: expected int but got Literal[''] [incompatible_argument]
./qualifiers_final_annotation.py:170:10: Incompatible argument type for y: expected int but got Literal[''] [incompatible_argument]
./qualifiers_final_annotation.py:178:4: Cannot assign to final name ID1 [incompatible_assignment]
./qualifiers_final_annotation.py:182:4: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:184:9: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:186:8: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:189:29: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:192:8: Cannot assign to final name x [incompatible_assignment]
./qualifiers_final_annotation.py:203:0: Cannot assign to final name TEN [incompatible_assignment]
./qualifiers_final_annotation.py:207:0: Cannot assign to final name PI [incompatible_assignment]
"""
Loading