Ensure all plugins are executed for a given candidate (#6540)

* remove early return so that all plugins are handled

We had an early return so that once a plugin was matched, that we could
stop running the code through the other plugins. However, in this case
we have an issue that user defined css is technically also a plugin.

This means that:
  - `bg-green-light`
Would check for:
  - `bg-green-light` (no hit, continue)
  - `bg-green` (Hit! Don't execute next plugins)
  - `bg` (This is the one that would have generated `bg-green-light`)

We tested this change and it doesn't seem to have an impact functionally
and also not really performance wise.

* update changelog
This commit is contained in:
Robin Malfait 2021-12-15 18:07:26 +01:00 • committed by GitHub
parent 08a07f6e02
commit deb68d5816
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 4 deletions

View file

@ -325,7 +325,6 @@ function* resolveMatchedPlugins(classCandidate, context) {
for (let [prefix, modifier] of candidatePermutations(candidatePrefix)) {
if (context.candidateRuleMap.has(prefix)) {
yield [context.candidateRuleMap.get(prefix), negative ? `-${modifier}` : modifier]
return
}
}
}