pyrefly
pyrefly copied to clipboard
[feature] disallow non-frozen dataclass from extending a frozen dataclass, and vice versa
Describe the Bug
To check whether a class is a frozen dataclass based on metadata, do something like:
metadata.dataclass_metadata().is_some_and(|dataclass| dataclass.kws.is_set(&DataclassKeywords::FROZEN))
The check should probably go somewhere in this function or some helper called by it:
https://github.com/facebook/pyrefly/blob/c6a5b667065373cdad63e3fbadaba1baa0675998/pyrefly/lib/alt/class/class_metadata.rs#L150
Once this is done, please add a test to: https://github.com/facebook/pyrefly/blob/main/pyrefly/lib/test/dataclasses.rs
Sandbox Link
No response
(Only applicable for extension issues) IDE Information
No response