-
Notifications
You must be signed in to change notification settings - Fork 467
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
[WIP] Refactor node weave #2557
Conversation
These were missing a lot of edge cases.
The |
@mgreter I have a branch (#2775) where I've rewritten selector unification to match Dart Sass. This fixes a ton of bugs but unfortunately breaks Perhaps you can make a PR that just implements subweave for AST nodes, then I can try updating |
Update: My unification rewrite has been merged, it's all good. |
} | ||
|
||
template <class T> | ||
bool SetContains(const T& lhs, const T& rhs) { |
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.
How about using hash maps/sets throughout (std::unordered_map
)? They are faster and easier to get right
This is a early WIP branch trying to fix the very old ast<->node implementation nobody understands. Subweave is already pretty much working ok, but still some more work to do. One can see that the initial architecture for complex_selectors is not very optimal, since we need to copy/clone the whole linked list chain (tails) once we want to change connections. For that I have introduced
Selector_Groups
for now. Putting this here since it was laying around for quite some time in my local repo.