mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-16 09:35:07 +00:00
New Singleton
enum for PatternMatchSingleton
node (#8063)
## Summary This PR adds a new `Singleton` enum for the `PatternMatchSingleton` node. Earlier the node was using the `Constant` enum but the value for this pattern can only be either `None`, `True` or `False`. With the coming PR to remove the `Constant`, this node required a new type to fill in. This also has the benefit of narrowing the type down to only the possible values for the node as evident by the removal of `unreachable`. ## Test Plan Update the AST snapshots and run `cargo test`.
This commit is contained in:
parent
ee7d445ef5
commit
78bbf6d403
10 changed files with 70 additions and 28 deletions
|
@ -185,8 +185,8 @@ pub struct PatternMatchValue<'a> {
|
|||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Hash)]
|
||||
pub struct PatternMatchSingleton<'a> {
|
||||
value: ComparableConstant<'a>,
|
||||
pub struct PatternMatchSingleton {
|
||||
value: ComparableSingleton,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Hash)]
|
||||
|
@ -227,7 +227,7 @@ pub struct PatternMatchOr<'a> {
|
|||
#[derive(Debug, PartialEq, Eq, Hash)]
|
||||
pub enum ComparablePattern<'a> {
|
||||
MatchValue(PatternMatchValue<'a>),
|
||||
MatchSingleton(PatternMatchSingleton<'a>),
|
||||
MatchSingleton(PatternMatchSingleton),
|
||||
MatchSequence(PatternMatchSequence<'a>),
|
||||
MatchMapping(PatternMatchMapping<'a>),
|
||||
MatchClass(PatternMatchClass<'a>),
|
||||
|
@ -326,6 +326,23 @@ impl<'a> From<&'a ast::Decorator> for ComparableDecorator<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Hash)]
|
||||
pub enum ComparableSingleton {
|
||||
None,
|
||||
True,
|
||||
False,
|
||||
}
|
||||
|
||||
impl From<&ast::Singleton> for ComparableSingleton {
|
||||
fn from(singleton: &ast::Singleton) -> Self {
|
||||
match singleton {
|
||||
ast::Singleton::None => Self::None,
|
||||
ast::Singleton::True => Self::True,
|
||||
ast::Singleton::False => Self::False,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Hash)]
|
||||
pub enum ComparableConstant<'a> {
|
||||
None,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue