-
Notifications
You must be signed in to change notification settings - Fork 145
[TASK] Use delegation for DeclarationBlock
-> RuleSet
#1194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
7800603
to
73956e9
Compare
c1c27a9
to
3a278e0
Compare
c935f2c
to
1f908cf
Compare
Would be good to resolve #1247 before moving on with this. |
1f908cf
to
1ce18b7
Compare
This is almost ready for review, but some tests need to be added. Before doing so, I'd appreciate a pre-review from you: @sabberworm, @oliverklee. I'm not keen on the having the various chaining methods in For This is the only realistic way forward I see for now, in an 'Agile' sense, which can deliver what is required now, without wholescale refactoring or breaking changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this approach!
Maybe as another spin-off PR (or prepatch), we can introduce the interface and have one class implement it. |
4b3466d
to
9db9e2f
Compare
a9790f1
to
e123988
Compare
The trait provides tests for classes implementing `RuleContainer`. The test methods and data providers have been moved verbatim to the trait from `RuleSetTest`. Will be needed for #1194.
The trait provides tests for classes implementing `RuleContainer`. The test methods and data providers have been moved verbatim to the trait from `RuleSetTest`. Will be needed for #1194.
The trait provides tests for classes implementing `RuleContainer`. The test methods and data providers have been moved verbatim to the trait from `RuleSetTest`. Will be needed for #1194
61d3317
to
17885d0
Compare
I think all pre-PRs that can be separated have been completed now. |
*/ | ||
abstract class RuleSet implements CSSElement, CSSListItem, Positionable, RuleContainer | ||
class RuleSet implements CSSElement, CSSListItem, Positionable, RuleContainer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can move the changes to RuleSet
(plus test coverage) to a pre-patch, too.
bcf5cbe
to
6974745
Compare
This PR needs a rebase. Apart from that, I think we can move de-abstracting the |
It is impossible to rebase now, because git does it one commit at a time, and I probably included changes in the wrong commits in a previous rebase. I tried merge. Might be able to fix the resulting errors. Otherwise will have to start over. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs starting over. It's a mess now.
I tried undoing lastest merge, but it's still a mess. I can't even get back to where I was now. Will take some time redoing. |
In my experience, when I had a PR from which I spun off some pre-PRs, I also sometimes had nasty merge conflicts when rebasing. In those cases, it made things a lot easier if I squashed the existing commits in the PR branch before rebasing. |
... adding internal `render` method. Precursor to #1194.
I think I have somehow managed to rebase without including any changes from If I could somehow reset the branch to the state it was in immediately after the commit "Reorder construction", then squashing may be possible, but I'm not sure how to do that. |
|
6974745
to
184f865
Compare
... rather than inheritance. This will allow `DeclarationBlock` to instead extend `CSSBlockList` in order to support [CSS nesting](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting). This is a slightly-breaking change, since now `CSSBlockList::getAllRuleSets()` will include the `RuleSet` property of the `DeclarationBlock` instead of the `DeclarationBlock` itself. Part of #1170.
184f865
to
34c8708
Compare
git reset -hard {SHA-of-last-commit-before-attempted-rebase} ... undid the failed rebase/merge. I think when I tried merging instead (via GitHub), that moved the 'common ancestor' point, but when I reverted the merge, it was not moved back.
git reset -soft {SHA-of-first-branch-commit}
git commit --amend ... did the squashing.
That helped immensely; thanks. Instead of (presumably) 9 rounds of conflict resolution, including for files with no overall conflict, there was just one round, for the two files that actually had conflicts. (I'm used to Perforce, which does the merge all at once, and also has a visual editor for 3-way merging. Keeping a cool head also helps ;)) Rebase now done !) Thanks <3 |
... rather than inheritance.
This will allow
DeclarationBlock
to instead extendCSSBlockList
in order to supportCSS nesting.
This is a slightly-breaking change, since now
CSSBlockList::getAllRuleSets()
will include theRuleSet
property of theDeclarationBlock
instead of theDeclarationBlock
itself.Part of #1170.