-
-
Notifications
You must be signed in to change notification settings - Fork 893
Open
Labels
help wantedContributions encouragedContributions encouraged
Description
To create a code action that merges two or more case clauses if their right-hand sides are equivalent:
pub type CaseVariants {
Variant1
Variant2
Variant3(String)
Variant4(String, Int)
}
pub fn main(case_variant) {
case case_variant {
Variant1 -> first_variants()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Variant2 -> first_variants()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Variant3(a) -> a
Variant4(a, _) -> a
}
}Turns into:
pub fn main(case_variant) {
case case_variant {
Variant1 | Variant2 -> first_variants()
Variant3(a) -> a
Variant4(a, _) -> a
}
}A more complicated (and optimistic 😄) example
pub type CaseVariants {
Variant1
Variant2
Variant3(String)
Variant4(String, Int)
}
pub fn main(case_variant) {
case case_variant {
Variant1 -> "Variant1"
Variant2 -> "Variant2"
Variant3(a) -> a
^^^^^^^^^^^^^^^^
Variant4(string_value, _int_value) -> string_value
^^^^^^^^^^^^^^^^^^^
}
}Turns into:
pub fn main(case_variant) {
case case_variant {
Variant1 -> "Variant1"
Variant2 -> "Variant2"
Variant3(a) | Variant4(a, _) -> a
}
}Metadata
Metadata
Assignees
Labels
help wantedContributions encouragedContributions encouraged