Skip to content

Introduce AbstractCascadesRule and split rule kinds into interfaces#4322

Open
RobertBrunel wants to merge 1 commit into
FoundationDB:mainfrom
RobertBrunel:AbstractCascadesRule
Open

Introduce AbstractCascadesRule and split rule kinds into interfaces#4322
RobertBrunel wants to merge 1 commit into
FoundationDB:mainfrom
RobertBrunel:AbstractCascadesRule

Conversation

@RobertBrunel

Copy link
Copy Markdown
Contributor

Convert CascadesRule, ExplorationCascadesRule, and ImplementationCascadesRule from abstract classes to interfaces, and add a new AbstractCascadesRule abstract base class implementing CascadesRule. Concrete rules now extend AbstractCascadesRule and implement the appropriate rule-kind interface. This opens the door to rules that satisfy more than one kind.

The change is mechanical across the rule files. Type signatures that previously took CascadesRule and only carried concrete (i.e., AbstractCascadesRule-derived) instances are tightened to AbstractCascadesRule.

@RobertBrunel RobertBrunel requested a review from normen662 July 2, 2026 18:19
@RobertBrunel RobertBrunel self-assigned this Jul 2, 2026
@RobertBrunel RobertBrunel added the cleanup Style/code cleanup with no behavioral change label Jul 2, 2026
Convert `CascadesRule`, `ExplorationCascadesRule`, and `ImplementationCascadesRule` from abstract classes to interfaces, and add a new `AbstractCascadesRule` abstract base class implementing `CascadesRule`. Concrete rules now extend `AbstractCascadesRule` and implement the appropriate rule-kind interface. This opens the door to rules that satisfy more than one kind.

The change is mechanical across the rule files. Type signatures that previously took `CascadesRule` and only carried concrete (i.e., `AbstractCascadesRule`-derived) instances are tightened to `AbstractCascadesRule`.

Co-authored-by: Normen Seemann <nseemann@apple.com>
@RobertBrunel RobertBrunel force-pushed the AbstractCascadesRule branch from 988df26 to c82f08c Compare July 3, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Style/code cleanup with no behavioral change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant