diff --git a/conformance/results/mypy/qualifiers_final_annotation.toml b/conformance/results/mypy/qualifiers_final_annotation.toml index 099d55b0c..e131cf3d4 100644 --- a/conformance/results/mypy/qualifiers_final_annotation.toml +++ b/conformance/results/mypy/qualifiers_final_annotation.toml @@ -6,45 +6,47 @@ Does not allow redefinition of private class variable that is marked `Final` in 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:20: error: Argument 1 to "expects_one" has incompatible type "int"; expected "Literal[1]" [arg-type] +qualifiers_final_annotation.py:23: error: Argument 1 to "expects_one" has incompatible type "int"; expected "Literal[1]" [arg-type] +qualifiers_final_annotation.py:32: error: Type in Final[...] can only be omitted if there is an initializer [misc] +qualifiers_final_annotation.py:34: error: Final[...] takes at most one type argument [misc] +qualifiers_final_annotation.py:50: error: Type in Final[...] can only be omitted if there is an initializer [misc] +qualifiers_final_annotation.py:54: error: Final name must be initialized with a value [misc] +qualifiers_final_annotation.py:70: error: Cannot assign to final attribute "ID5" [misc] +qualifiers_final_annotation.py:75: error: Cannot assign to final attribute "ID6" [misc] +qualifiers_final_annotation.py:78: error: Can only declare a final attribute in class body or __init__ [misc] +qualifiers_final_annotation.py:79: error: Can only declare a final attribute in class body or __init__ [misc] +qualifiers_final_annotation.py:81: error: Cannot assign to final attribute "ID7" [misc] +qualifiers_final_annotation.py:83: error: Cannot assign to final attribute "ID7" [misc] +qualifiers_final_annotation.py:87: error: Cannot assign to final name "RATE" [misc] +qualifiers_final_annotation.py:97: error: Cannot assign to final attribute "DEFAULT_ID" [misc] +qualifiers_final_annotation.py:110: error: Cannot assign to final name "BORDER_WIDTH" [misc] +qualifiers_final_annotation.py:112: error: Cannot assign to final name "__private" [misc] +qualifiers_final_annotation.py:123: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type] +qualifiers_final_annotation.py:124: error: Variable should not be annotated with both ClassVar and Final [misc] +qualifiers_final_annotation.py:134: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type] +qualifiers_final_annotation.py:137: error: Final can be only used as an outermost qualifier in a variable annotation [valid-type] +qualifiers_final_annotation.py:147: error: Final[...] can't be used inside a TypedDict [valid-type] +qualifiers_final_annotation.py:152: error: Final[...] can't be used inside a NamedTuple [valid-type] +qualifiers_final_annotation.py:161: error: Invalid "NamedTuple()" field name [misc] +qualifiers_final_annotation.py:163: error: Unexpected keyword argument "x" for "N" [call-arg] +qualifiers_final_annotation.py:163: error: Unexpected keyword argument "y" for "N" [call-arg] +qualifiers_final_annotation.py:164: error: Unexpected keyword argument "a" for "N" [call-arg] +qualifiers_final_annotation.py:165: error: Unexpected keyword argument "x" for "N" [call-arg] +qualifiers_final_annotation.py:165: error: Unexpected keyword argument "y" for "N" [call-arg] +qualifiers_final_annotation.py:171: error: Cannot assign to final name "ID1" [misc] +qualifiers_final_annotation.py:175: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:177: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:182: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "int") [assignment] +qualifiers_final_annotation.py:185: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:196: error: Cannot assign to final name "TEN" [misc] +qualifiers_final_annotation.py:200: 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 179: Expected 1 errors +Line 75: Unexpected errors ['qualifiers_final_annotation.py:75: error: Cannot assign to final attribute "ID6" [misc]'] +Line 112: Unexpected errors ['qualifiers_final_annotation.py:112: error: Cannot assign to final name "__private" [misc]'] +Line 161: Unexpected errors ['qualifiers_final_annotation.py:161: error: Invalid "NamedTuple()" field name [misc]'] +Line 163: Unexpected errors ['qualifiers_final_annotation.py:163: error: Unexpected keyword argument "x" for "N" [call-arg]', 'qualifiers_final_annotation.py:163: error: Unexpected keyword argument "y" for "N" [call-arg]'] """ diff --git a/conformance/results/pycroscope/qualifiers_final_annotation.toml b/conformance/results/pycroscope/qualifiers_final_annotation.toml index 0784a273e..005ab93e1 100644 --- a/conformance/results/pycroscope/qualifiers_final_annotation.toml +++ b/conformance/results/pycroscope/qualifiers_final_annotation.toml @@ -2,34 +2,37 @@ conformance_automated = "Pass" errors_diff = """ """ 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 (, ) [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[] [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:20:12: Incompatible argument type for x: expected Literal[1] but got int [incompatible_argument] +./qualifiers_final_annotation.py:23:12: Incompatible argument type for x: expected Literal[1] but got int [incompatible_argument] +./qualifiers_final_annotation.py:26:12: Literal[range(0, 1)] is not equivalent to range +./qualifiers_final_annotation.py:32:6: Final annotation without assignment requires an explicit type [invalid_qualifier] +./qualifiers_final_annotation.py:34:6: Invalid type annotation (, ) [invalid_annotation] +./qualifiers_final_annotation.py:50:9: Final annotation without assignment requires an explicit type [invalid_qualifier] +./qualifiers_final_annotation.py:50:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier] +./qualifiers_final_annotation.py:54:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier] +./qualifiers_final_annotation.py:70:8: Cannot assign to final name ID5 [incompatible_assignment] +./qualifiers_final_annotation.py:78:18: Final instance attributes may be declared only in __init__ [invalid_qualifier] +./qualifiers_final_annotation.py:79:18: Final instance attributes may be declared only in __init__ [invalid_qualifier] +./qualifiers_final_annotation.py:81:8: Cannot assign to final name ID7 [incompatible_assignment] +./qualifiers_final_annotation.py:83:8: Cannot assign to final name ID7 [incompatible_assignment] +./qualifiers_final_annotation.py:87:0: Cannot assign to final name RATE [incompatible_assignment] +./qualifiers_final_annotation.py:97:0: Cannot assign to final name DEFAULT_ID [incompatible_assignment] +./qualifiers_final_annotation.py:110:4: Cannot override final attribute BORDER_WIDTH [incompatible_override] +./qualifiers_final_annotation.py:123:12: Final cannot be combined with ClassVar [invalid_qualifier] +./qualifiers_final_annotation.py:124:12: Final cannot be combined with ClassVar [invalid_qualifier] +./qualifiers_final_annotation.py:134:3: Unrecognized annotation typing.Final[] [invalid_annotation] +./qualifiers_final_annotation.py:137:13: Unexpected Final annotation [invalid_qualifier] +./qualifiers_final_annotation.py:147:7: Unexpected Final annotation [invalid_qualifier] +./qualifiers_final_annotation.py:152:4: Final class attributes without initializers must be assigned in __init__ [invalid_qualifier] +./qualifiers_final_annotation.py:164:0: In call to pycroscope.signature.N: Missing required argument 'x' [incompatible_call] +./qualifiers_final_annotation.py:165:4: Incompatible argument type for x: expected int but got Literal[''] [incompatible_argument] +./qualifiers_final_annotation.py:165:10: Incompatible argument type for y: expected int but got Literal[''] [incompatible_argument] +./qualifiers_final_annotation.py:171:4: Cannot assign to final name ID1 [incompatible_assignment] +./qualifiers_final_annotation.py:175:4: Cannot assign to final name x [incompatible_assignment] +./qualifiers_final_annotation.py:177:9: Cannot assign to final name x [incompatible_assignment] +./qualifiers_final_annotation.py:179:8: Cannot assign to final name x [incompatible_assignment] +./qualifiers_final_annotation.py:182:29: Cannot assign to final name x [incompatible_assignment] +./qualifiers_final_annotation.py:185:8: Cannot assign to final name x [incompatible_assignment] +./qualifiers_final_annotation.py:196:0: Cannot assign to final name TEN [incompatible_assignment] +./qualifiers_final_annotation.py:200:0: Cannot assign to final name PI [incompatible_assignment] """ diff --git a/conformance/results/pyrefly/qualifiers_final_annotation.toml b/conformance/results/pyrefly/qualifiers_final_annotation.toml index 4da0650c7..f56a22bd3 100644 --- a/conformance/results/pyrefly/qualifiers_final_annotation.toml +++ b/conformance/results/pyrefly/qualifiers_final_annotation.toml @@ -2,36 +2,38 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -ERROR qualifiers_final_annotation.py:16:7-12: Expected a type argument for `Final` [invalid-annotation] -ERROR qualifiers_final_annotation.py:18:7-22: Expected 1 type argument for `Final`, got 2 [invalid-annotation] -ERROR qualifiers_final_annotation.py:34:5-8: Final attribute declared in class body must be initialized with a value or in `__init__` [invalid-annotation] -ERROR qualifiers_final_annotation.py:38:5-8: Final attribute declared in class body must be initialized with a value or in `__init__` [invalid-annotation] -ERROR qualifiers_final_annotation.py:54:9-17: Cannot set field `ID5` [read-only] -ERROR qualifiers_final_annotation.py:62:9-17: Cannot set field `id3` [read-only] -ERROR qualifiers_final_annotation.py:63:9-17: Cannot set field `id4` [read-only] -ERROR qualifiers_final_annotation.py:65:9-17: Cannot set field `ID7` [read-only] -ERROR qualifiers_final_annotation.py:67:9-17: Cannot set field `ID7` [read-only] -ERROR qualifiers_final_annotation.py:71:8-11: Cannot assign to variable `RATE` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:81:1-18: Cannot set field `DEFAULT_ID` [read-only] -ERROR qualifiers_final_annotation.py:94:5-17: `BORDER_WIDTH` is declared as final in parent class `ClassC` [bad-override] -ERROR qualifiers_final_annotation.py:107:5-11: `Final` may not be nested inside `ClassVar` [invalid-annotation] -ERROR qualifiers_final_annotation.py:108:19-27: `ClassVar` may not be nested inside `Final` [invalid-annotation] -ERROR qualifiers_final_annotation.py:118:9-19: `Final` is not allowed in this context [invalid-annotation] -ERROR qualifiers_final_annotation.py:121:14-19: `Final` is only allowed on a class or local variable annotation [invalid-annotation] -ERROR qualifiers_final_annotation.py:121:14-30: `Final` is not allowed in this context [invalid-annotation] -ERROR qualifiers_final_annotation.py:131:5-6: `Final` may not be used for TypedDict members [invalid-annotation] -ERROR qualifiers_final_annotation.py:136:5-6: `Final` may not be used for NamedTuple members [invalid-annotation] -ERROR qualifiers_final_annotation.py:148:2-7: Missing argument `x` in function `N.__new__` [missing-argument] -ERROR qualifiers_final_annotation.py:148:2-7: Missing argument `y` in function `N.__new__` [missing-argument] -ERROR qualifiers_final_annotation.py:148:3-4: Unexpected keyword argument `a` in function `N.__new__` [unexpected-keyword] -ERROR qualifiers_final_annotation.py:149:5-7: Argument `Literal['']` is not assignable to parameter `x` with type `int` in function `N.__new__` [bad-argument-type] -ERROR qualifiers_final_annotation.py:149:11-13: Argument `Literal['']` is not assignable to parameter `y` with type `int` in function `N.__new__` [bad-argument-type] -ERROR qualifiers_final_annotation.py:155:11-12: Cannot assign to variable `ID1` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:159:5-11: Cannot assign to variable `x` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:161:15-16: Cannot assign to variable `x` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:163:14-23: Cannot assign to variable `x` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:166:10-26: Cannot assign to variable `x` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:169:5-11: Cannot assign to variable `x` because it is marked final [bad-assignment] -ERROR qualifiers_final_annotation.py:180:1-4: Cannot assign to `TEN` because it is imported as final [bad-assignment] -ERROR qualifiers_final_annotation.py:184:1-3: Cannot assign to `PI` because it is imported as final [bad-assignment] +ERROR qualifiers_final_annotation.py:20:13-16: Argument `int` is not assignable to parameter `x` with type `Literal[1]` in function `expects_one` [bad-argument-type] +ERROR qualifiers_final_annotation.py:23:13-16: Argument `int` is not assignable to parameter `x` with type `Literal[1]` in function `expects_one` [bad-argument-type] +ERROR qualifiers_final_annotation.py:32:7-12: Expected a type argument for `Final` [invalid-annotation] +ERROR qualifiers_final_annotation.py:34:7-22: Expected 1 type argument for `Final`, got 2 [invalid-annotation] +ERROR qualifiers_final_annotation.py:50:5-8: Final attribute declared in class body must be initialized with a value or in `__init__` [invalid-annotation] +ERROR qualifiers_final_annotation.py:54:5-8: Final attribute declared in class body must be initialized with a value or in `__init__` [invalid-annotation] +ERROR qualifiers_final_annotation.py:70:9-17: Cannot set field `ID5` [read-only] +ERROR qualifiers_final_annotation.py:78:9-17: Cannot set field `id3` [read-only] +ERROR qualifiers_final_annotation.py:79:9-17: Cannot set field `id4` [read-only] +ERROR qualifiers_final_annotation.py:81:9-17: Cannot set field `ID7` [read-only] +ERROR qualifiers_final_annotation.py:83:9-17: Cannot set field `ID7` [read-only] +ERROR qualifiers_final_annotation.py:87:8-11: Cannot assign to variable `RATE` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:97:1-18: Cannot set field `DEFAULT_ID` [read-only] +ERROR qualifiers_final_annotation.py:110:5-17: `BORDER_WIDTH` is declared as final in parent class `ClassC` [bad-override] +ERROR qualifiers_final_annotation.py:123:5-11: `Final` may not be nested inside `ClassVar` [invalid-annotation] +ERROR qualifiers_final_annotation.py:124:19-27: `ClassVar` may not be nested inside `Final` [invalid-annotation] +ERROR qualifiers_final_annotation.py:134:9-19: `Final` is not allowed in this context [invalid-annotation] +ERROR qualifiers_final_annotation.py:137:14-19: `Final` is only allowed on a class or local variable annotation [invalid-annotation] +ERROR qualifiers_final_annotation.py:137:14-30: `Final` is not allowed in this context [invalid-annotation] +ERROR qualifiers_final_annotation.py:147:5-6: `Final` may not be used for TypedDict members [invalid-annotation] +ERROR qualifiers_final_annotation.py:152:5-6: `Final` may not be used for NamedTuple members [invalid-annotation] +ERROR qualifiers_final_annotation.py:164:2-7: Missing argument `x` in function `N.__new__` [missing-argument] +ERROR qualifiers_final_annotation.py:164:2-7: Missing argument `y` in function `N.__new__` [missing-argument] +ERROR qualifiers_final_annotation.py:164:3-4: Unexpected keyword argument `a` in function `N.__new__` [unexpected-keyword] +ERROR qualifiers_final_annotation.py:165:5-7: Argument `Literal['']` is not assignable to parameter `x` with type `int` in function `N.__new__` [bad-argument-type] +ERROR qualifiers_final_annotation.py:165:11-13: Argument `Literal['']` is not assignable to parameter `y` with type `int` in function `N.__new__` [bad-argument-type] +ERROR qualifiers_final_annotation.py:171:11-12: Cannot assign to variable `ID1` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:175:5-11: Cannot assign to variable `x` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:177:15-16: Cannot assign to variable `x` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:179:14-23: Cannot assign to variable `x` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:182:10-26: Cannot assign to variable `x` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:185:5-11: Cannot assign to variable `x` because it is marked final [bad-assignment] +ERROR qualifiers_final_annotation.py:196:1-4: Cannot assign to `TEN` because it is imported as final [bad-assignment] +ERROR qualifiers_final_annotation.py:200:1-3: Cannot assign to `PI` because it is imported as final [bad-assignment] """ diff --git a/conformance/results/pyright/qualifiers_final_annotation.toml b/conformance/results/pyright/qualifiers_final_annotation.toml index 0fb73bda6..fd4e49964 100644 --- a/conformance/results/pyright/qualifiers_final_annotation.toml +++ b/conformance/results/pyright/qualifiers_final_annotation.toml @@ -1,48 +1,48 @@ conformant = "Pass" output = """ -qualifiers_final_annotation.py:16:1 - error: "BAD1" is declared Final, but value is not assigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:18:7 - error: Expected a single type argument after "Final" (reportInvalidTypeForm) -qualifiers_final_annotation.py:34:5 - error: "ID2" is declared Final, but value is not assigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:38:5 - error: "ID3" is declared Final, but value is not assigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:54:14 - error: Cannot assign to attribute "ID5" for class "ClassA*" +qualifiers_final_annotation.py:32:1 - error: "BAD1" is declared Final, but value is not assigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:34:7 - error: Expected a single type argument after "Final" (reportInvalidTypeForm) +qualifiers_final_annotation.py:50:5 - error: "ID2" is declared Final, but value is not assigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:54:5 - error: "ID3" is declared Final, but value is not assigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:70:14 - error: Cannot assign to attribute "ID5" for class "ClassA*"   Attribute "ID5" cannot be assigned through a class instance because it is a ClassVar   "ID5" is declared as Final and cannot be reassigned (reportAttributeAccessIssue) -qualifiers_final_annotation.py:62:19 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:63:19 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:63:32 - error: Cannot assign to attribute "id4" for class "ClassA*" +qualifiers_final_annotation.py:78:19 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:79:19 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:79:32 - error: Cannot assign to attribute "id4" for class "ClassA*"   "Literal[1]" is not assignable to "Final" (reportAttributeAccessIssue) -qualifiers_final_annotation.py:65:14 - error: Cannot assign to attribute "ID7" for class "ClassA*" +qualifiers_final_annotation.py:81:14 - error: Cannot assign to attribute "ID7" for class "ClassA*"   Attribute "ID7" cannot be assigned through a class instance because it is a ClassVar   "ID7" is declared as Final and cannot be reassigned (reportAttributeAccessIssue) -qualifiers_final_annotation.py:67:14 - error: Cannot assign to attribute "ID7" for class "ClassA*" +qualifiers_final_annotation.py:83:14 - error: Cannot assign to attribute "ID7" for class "ClassA*"   Attribute "ID7" cannot be assigned through a class instance because it is a ClassVar   "ID7" is declared as Final and cannot be reassigned (reportAttributeAccessIssue) -qualifiers_final_annotation.py:71:1 - error: "RATE" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:81:8 - error: Cannot assign to attribute "DEFAULT_ID" for class "type[ClassB]" +qualifiers_final_annotation.py:87:1 - error: "RATE" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:97:8 - error: Cannot assign to attribute "DEFAULT_ID" for class "type[ClassB]"   "DEFAULT_ID" is declared as Final and cannot be reassigned (reportAttributeAccessIssue) -qualifiers_final_annotation.py:94:5 - error: "BORDER_WIDTH" cannot be redeclared because parent class "ClassC" declares it as Final (reportGeneralTypeIssues) -qualifiers_final_annotation.py:107:22 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:108:19 - error: "ClassVar" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:118:9 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:121:14 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:131:5 - error: "b" is declared Final, but value is not assigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:131:8 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:136:5 - error: "b" is declared Final, but value is not assigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:136:8 - error: "Final" is not allowed in this context (reportInvalidTypeForm) -qualifiers_final_annotation.py:148:1 - error: Arguments missing for parameters "x", "y" (reportCallIssue) -qualifiers_final_annotation.py:148:3 - error: No parameter named "a" (reportCallIssue) -qualifiers_final_annotation.py:149:5 - error: Argument of type "Literal['']" cannot be assigned to parameter "x" of type "int" in function "__new__" +qualifiers_final_annotation.py:110:5 - error: "BORDER_WIDTH" cannot be redeclared because parent class "ClassC" declares it as Final (reportGeneralTypeIssues) +qualifiers_final_annotation.py:123:22 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:124:19 - error: "ClassVar" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:134:9 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:137:14 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:147:5 - error: "b" is declared Final, but value is not assigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:147:8 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:152:5 - error: "b" is declared Final, but value is not assigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:152:8 - error: "Final" is not allowed in this context (reportInvalidTypeForm) +qualifiers_final_annotation.py:164:1 - error: Arguments missing for parameters "x", "y" (reportCallIssue) +qualifiers_final_annotation.py:164:3 - error: No parameter named "a" (reportCallIssue) +qualifiers_final_annotation.py:165:5 - error: Argument of type "Literal['']" cannot be assigned to parameter "x" of type "int" in function "__new__"   "Literal['']" is not assignable to "int" (reportArgumentType) -qualifiers_final_annotation.py:149:11 - error: Argument of type "Literal['']" cannot be assigned to parameter "y" of type "int" in function "__new__" +qualifiers_final_annotation.py:165:11 - error: Argument of type "Literal['']" cannot be assigned to parameter "y" of type "int" in function "__new__"   "Literal['']" is not assignable to "int" (reportArgumentType) -qualifiers_final_annotation.py:155:5 - error: "ID1" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:159:5 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:161:10 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:163:9 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:166:30 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:169:9 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:180:1 - error: "TEN" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) -qualifiers_final_annotation.py:184:1 - error: "PI" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:171:5 - error: "ID1" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:175:5 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:177:10 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:179:9 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:182:30 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:185:9 - error: "x" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:196:1 - error: "TEN" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) +qualifiers_final_annotation.py:200:1 - error: "PI" is declared as Final and cannot be reassigned (reportGeneralTypeIssues) """ conformance_automated = "Pass" errors_diff = """ diff --git a/conformance/results/ty/qualifiers_final_annotation.toml b/conformance/results/ty/qualifiers_final_annotation.toml index ba871f898..923e01aeb 100644 --- a/conformance/results/ty/qualifiers_final_annotation.toml +++ b/conformance/results/ty/qualifiers_final_annotation.toml @@ -2,34 +2,34 @@ conformance_automated = "Pass" errors_diff = """ """ output = """ -qualifiers_final_annotation.py:16:1: error[final-without-value] `Final` symbol `BAD1` is not assigned a value -qualifiers_final_annotation.py:18:7: error[invalid-type-form] Type qualifier `typing.Final` expected exactly 1 argument, got 2 -qualifiers_final_annotation.py:34:5: error[final-without-value] `Final` symbol `ID2` is not assigned a value -qualifiers_final_annotation.py:38:5: error[final-without-value] `Final` symbol `ID3` is not assigned a value -qualifiers_final_annotation.py:54:9: error[invalid-assignment] Invalid assignment to final attribute: `ID5` already has a value in the class body -qualifiers_final_annotation.py:62:9: error[invalid-assignment] Cannot assign to final attribute `id3` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` -qualifiers_final_annotation.py:63:9: error[invalid-assignment] Cannot assign to final attribute `id4` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` -qualifiers_final_annotation.py:65:9: error[invalid-assignment] Cannot assign to final attribute `ID7` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` -qualifiers_final_annotation.py:67:9: error[invalid-assignment] Cannot assign to final attribute `ID7` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` -qualifiers_final_annotation.py:71:1: error[invalid-assignment] Reassignment of `Final` symbol `RATE` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:81:1: error[invalid-assignment] Cannot assign to final attribute `DEFAULT_ID` on type ``: `Final` attributes can only be assigned in the class body or `__init__` -qualifiers_final_annotation.py:94:5: error[override-of-final-variable] Cannot override final variable `BORDER_WIDTH` from superclass `ClassC` -qualifiers_final_annotation.py:107:13: error[redundant-final-classvar] `Combining `ClassVar` and `Final` is redundant -qualifiers_final_annotation.py:108:13: error[redundant-final-classvar] `Combining `ClassVar` and `Final` is redundant -qualifiers_final_annotation.py:118:9: error[invalid-type-form] Type qualifier `typing.Final` is not allowed in type expressions (only in annotation expressions) -qualifiers_final_annotation.py:121:14: error[invalid-type-form] Type qualifier `typing.Final` is not allowed in parameter annotations -qualifiers_final_annotation.py:131:8: error[invalid-type-form] `Final` is not allowed in TypedDict fields -qualifiers_final_annotation.py:136:5: error[invalid-named-tuple] Type qualifier `Final` is not allowed on NamedTuple field `b` -qualifiers_final_annotation.py:148:1: error[missing-argument] No arguments provided for required parameters `x`, `y` -qualifiers_final_annotation.py:148:3: error[unknown-argument] Argument `a` does not match any known parameter -qualifiers_final_annotation.py:149:3: error[invalid-argument-type] Argument is incorrect: Expected `int`, found `Literal[""]` -qualifiers_final_annotation.py:149:9: error[invalid-argument-type] Argument is incorrect: Expected `int`, found `Literal[""]` -qualifiers_final_annotation.py:155:5: error[invalid-assignment] Reassignment of `Final` symbol `ID1` is not allowed: Reassignment of `Final` symbol -qualifiers_final_annotation.py:159:5: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:161:10: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:163:9: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:166:30: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:169:9: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here -qualifiers_final_annotation.py:180:1: error[invalid-assignment] Reassignment of `Final` symbol `TEN` is not allowed: Reassignment of `Final` symbol -qualifiers_final_annotation.py:184:1: error[invalid-assignment] Reassignment of `Final` symbol `PI` is not allowed: Reassignment of `Final` symbol +qualifiers_final_annotation.py:32:1: error[final-without-value] `Final` symbol `BAD1` is not assigned a value +qualifiers_final_annotation.py:34:7: error[invalid-type-form] Type qualifier `typing.Final` expected exactly 1 argument, got 2 +qualifiers_final_annotation.py:50:5: error[final-without-value] `Final` symbol `ID2` is not assigned a value +qualifiers_final_annotation.py:54:5: error[final-without-value] `Final` symbol `ID3` is not assigned a value +qualifiers_final_annotation.py:70:9: error[invalid-assignment] Invalid assignment to final attribute: `ID5` already has a value in the class body +qualifiers_final_annotation.py:78:9: error[invalid-assignment] Cannot assign to final attribute `id3` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` +qualifiers_final_annotation.py:79:9: error[invalid-assignment] Cannot assign to final attribute `id4` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` +qualifiers_final_annotation.py:81:9: error[invalid-assignment] Cannot assign to final attribute `ID7` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` +qualifiers_final_annotation.py:83:9: error[invalid-assignment] Cannot assign to final attribute `ID7` on type `Self@method1`: `Final` attributes can only be assigned in the class body or `__init__` +qualifiers_final_annotation.py:87:1: error[invalid-assignment] Reassignment of `Final` symbol `RATE` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:97:1: error[invalid-assignment] Cannot assign to final attribute `DEFAULT_ID` on type ``: `Final` attributes can only be assigned in the class body or `__init__` +qualifiers_final_annotation.py:110:5: error[override-of-final-variable] Cannot override final variable `BORDER_WIDTH` from superclass `ClassC` +qualifiers_final_annotation.py:123:13: error[redundant-final-classvar] `Combining `ClassVar` and `Final` is redundant +qualifiers_final_annotation.py:124:13: error[redundant-final-classvar] `Combining `ClassVar` and `Final` is redundant +qualifiers_final_annotation.py:134:9: error[invalid-type-form] Type qualifier `typing.Final` is not allowed in type expressions (only in annotation expressions) +qualifiers_final_annotation.py:137:14: error[invalid-type-form] Type qualifier `typing.Final` is not allowed in parameter annotations +qualifiers_final_annotation.py:147:8: error[invalid-type-form] `Final` is not allowed in TypedDict fields +qualifiers_final_annotation.py:152:5: error[invalid-named-tuple] Type qualifier `Final` is not allowed on NamedTuple field `b` +qualifiers_final_annotation.py:164:1: error[missing-argument] No arguments provided for required parameters `x`, `y` +qualifiers_final_annotation.py:164:3: error[unknown-argument] Argument `a` does not match any known parameter +qualifiers_final_annotation.py:165:3: error[invalid-argument-type] Argument is incorrect: Expected `int`, found `Literal[""]` +qualifiers_final_annotation.py:165:9: error[invalid-argument-type] Argument is incorrect: Expected `int`, found `Literal[""]` +qualifiers_final_annotation.py:171:5: error[invalid-assignment] Reassignment of `Final` symbol `ID1` is not allowed: Reassignment of `Final` symbol +qualifiers_final_annotation.py:175:5: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:177:10: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:179:9: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:182:30: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:185:9: error[invalid-assignment] Reassignment of `Final` symbol `x` is not allowed: Symbol later reassigned here +qualifiers_final_annotation.py:196:1: error[invalid-assignment] Reassignment of `Final` symbol `TEN` is not allowed: Reassignment of `Final` symbol +qualifiers_final_annotation.py:200:1: error[invalid-assignment] Reassignment of `Final` symbol `PI` is not allowed: Reassignment of `Final` symbol """ diff --git a/conformance/results/zuban/qualifiers_final_annotation.toml b/conformance/results/zuban/qualifiers_final_annotation.toml index 1101ba386..fa8d7b6e3 100644 --- a/conformance/results/zuban/qualifiers_final_annotation.toml +++ b/conformance/results/zuban/qualifiers_final_annotation.toml @@ -2,34 +2,36 @@ conformance_automated = "Pass" errors_diff = """ """ 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: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:107: error: Final can be only used as an outermost qualifier in a variable annotation [misc] -qualifiers_final_annotation.py:108: error: Invalid Type: ClassVar nested inside other type [misc] -qualifiers_final_annotation.py:118: error: Final can be only used as an outermost qualifier in a variable annotation [misc] -qualifiers_final_annotation.py:121: error: Final can be only used as an outermost qualifier in a variable annotation [misc] -qualifiers_final_annotation.py:131: error: Final can be only used as an outermost qualifier in a variable annotation [misc] -qualifiers_final_annotation.py:136: error: Final can be only used as an outermost qualifier in a variable annotation [misc] -qualifiers_final_annotation.py:148: error: Unexpected keyword argument "a" for "N" [call-arg] -qualifiers_final_annotation.py:149: error: Argument "x" to "N" has incompatible type "str"; expected "int" [arg-type] -qualifiers_final_annotation.py:149: error: Argument "y" to "N" has incompatible type "str"; expected "int" [arg-type] -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:163: error: Cannot assign to final name "x" [misc] -qualifiers_final_annotation.py:166: 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:20: error: Argument 1 to "expects_one" has incompatible type "int"; expected "Literal[1]" [arg-type] +qualifiers_final_annotation.py:23: error: Argument 1 to "expects_one" has incompatible type "int"; expected "Literal[1]" [arg-type] +qualifiers_final_annotation.py:32: error: Type in Final[...] can only be omitted if there is an initializer [misc] +qualifiers_final_annotation.py:34: error: Final[...] takes at most one type argument [misc] +qualifiers_final_annotation.py:50: error: Type in Final[...] can only be omitted if there is an initializer [misc] +qualifiers_final_annotation.py:54: error: Final name must be initialized with a value [misc] +qualifiers_final_annotation.py:70: error: Cannot assign to final attribute "ID5" [misc] +qualifiers_final_annotation.py:78: error: Can only declare a final attribute in class body or __init__ [misc] +qualifiers_final_annotation.py:79: error: Can only declare a final attribute in class body or __init__ [misc] +qualifiers_final_annotation.py:81: error: Cannot assign to final attribute "ID7" [misc] +qualifiers_final_annotation.py:83: error: Cannot assign to final attribute "ID7" [misc] +qualifiers_final_annotation.py:87: error: Cannot assign to final name "RATE" [misc] +qualifiers_final_annotation.py:97: error: Cannot assign to final attribute "DEFAULT_ID" [misc] +qualifiers_final_annotation.py:110: error: Cannot assign to final name "BORDER_WIDTH" [misc] +qualifiers_final_annotation.py:123: error: Final can be only used as an outermost qualifier in a variable annotation [misc] +qualifiers_final_annotation.py:124: error: Invalid Type: ClassVar nested inside other type [misc] +qualifiers_final_annotation.py:134: error: Final can be only used as an outermost qualifier in a variable annotation [misc] +qualifiers_final_annotation.py:137: error: Final can be only used as an outermost qualifier in a variable annotation [misc] +qualifiers_final_annotation.py:147: error: Final can be only used as an outermost qualifier in a variable annotation [misc] +qualifiers_final_annotation.py:152: error: Final can be only used as an outermost qualifier in a variable annotation [misc] +qualifiers_final_annotation.py:164: error: Unexpected keyword argument "a" for "N" [call-arg] +qualifiers_final_annotation.py:165: error: Argument "x" to "N" has incompatible type "str"; expected "int" [arg-type] +qualifiers_final_annotation.py:165: error: Argument "y" to "N" has incompatible type "str"; expected "int" [arg-type] +qualifiers_final_annotation.py:171: error: Cannot assign to final name "ID1" [misc] +qualifiers_final_annotation.py:175: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:177: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:179: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:182: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:182: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "int") [assignment] +qualifiers_final_annotation.py:185: error: Cannot assign to final name "x" [misc] +qualifiers_final_annotation.py:196: error: Cannot assign to final name "TEN" [misc] +qualifiers_final_annotation.py:200: error: Cannot assign to final name "PI" [misc] """ diff --git a/conformance/tests/qualifiers_final_annotation.py b/conformance/tests/qualifiers_final_annotation.py index 0dc611211..07790d3a0 100644 --- a/conformance/tests/qualifiers_final_annotation.py +++ b/conformance/tests/qualifiers_final_annotation.py @@ -4,12 +4,28 @@ from typing import ClassVar, Final, Literal, NamedTuple, TypedDict, assert_type -# Specification: https://typing.readthedocs.io/en/latest/spec/qualifiers.html#id1 +# Specification: https://typing.python.org/en/latest/spec/literal.html#interactions-with-final + +def expects_one(x: Literal[1]) -> None: ... + +# > The Final qualifier serves as a shorthand for declaring that a variable is effectively Literal. + +ID1: Final = 1 +assert_type(ID1, Literal[1]) +expects_one(ID1) -ID1: Final[int] = 1 +# > Type checkers are not obligated to understand any other uses of Final. -ID2: Final = 1 -assert_type(ID2, Literal[1]) +ID2: Final[int] = 1 +expects_one(ID2) # E?: May or may not be accepted by type checkers + +ID3: Final = 2 - 1 +expects_one(ID2) # E?: May or may not be accepted by type checkers + +ID4: Final = range(1) +assert_type(ID4, range) # E?: May or may not be inferred by type checkers + +# Specification: https://typing.readthedocs.io/en/latest/spec/qualifiers.html#id1 # > If the right hand side is omitted, there must be an explicit type argument to Final.