Check existence of node.nodes in hasNoDeclarations #114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While trying to use the stylelint-selector-bem-pattern plugin (which uses
postcss-bem-linter
under the hood) in tandem with stylelint, using less syntax supplied by postcss-less, I noticed that the linter would error upon trying to parse mixins (as reported in #104), i.e.:Contrived, breaking code:
yields:
After existence check, yields proper output:
I know that this project is not less (or other pre-processor)-specific, but a seemingly innocuous change of checking for the existence of
node.nodes
before accessing.length
resolves this issue. This fix would also resolve #104.As far as the history of this issue: it looks like it can be sort of traced back to postcss-less#33, where a decision was made to mimic the behavior of
postcss-scss
, which setsnode.nodes
toundefined
when there are no children of a given rule. I can't speak to the how or why of that, but it's arguable about whether or not a discussion/fix belongs in a different project as well.