mirror of https://github.com/astral-sh/ruff
Add test for 'Final'-qualified field without a default
This commit is contained in:
parent
b92a283f35
commit
7d642e6416
|
|
@ -456,13 +456,14 @@ from typing import Final, ClassVar
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class C:
|
class C:
|
||||||
|
instance_variable_no_default: Final[int]
|
||||||
instance_variable: Final[int] = 1
|
instance_variable: Final[int] = 1
|
||||||
class_variable1: ClassVar[Final[int]] = 1
|
class_variable1: ClassVar[Final[int]] = 1
|
||||||
class_variable2: ClassVar[Final[int]] = 1
|
class_variable2: ClassVar[Final[int]] = 1
|
||||||
|
|
||||||
reveal_type(C.__init__) # revealed: (self: C, instance_variable: int = Literal[1]) -> None
|
reveal_type(C.__init__) # revealed: (self: C, instance_variable_no_default: int, instance_variable: int = Literal[1]) -> None
|
||||||
|
|
||||||
c = C()
|
c = C(1)
|
||||||
# TODO: this should be an error
|
# TODO: this should be an error
|
||||||
c.instance_variable = 2
|
c.instance_variable = 2
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,10 @@ from typing import Final
|
||||||
|
|
||||||
# TODO: This should be an error
|
# TODO: This should be an error
|
||||||
NO_RHS: Final
|
NO_RHS: Final
|
||||||
|
|
||||||
|
class C:
|
||||||
|
# TODO: This should be an error
|
||||||
|
NO_RHS: Final
|
||||||
```
|
```
|
||||||
|
|
||||||
[`typing.final`]: https://docs.python.org/3/library/typing.html#typing.Final
|
[`typing.final`]: https://docs.python.org/3/library/typing.html#typing.Final
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue