`visitCalculationExpression` is now properly implemented.
This also adds concrete test classes that extend `RecursiveAstVisitor`
and `RecursiveStatementVisitor` to ensure similar issues are avoided in
the future whenever new AST nodes are added.
We'll still include the code for this, but on a best-effort basis and
with the understanding that it will never work on Node 16 or later.
Once Node 14 is out of LTS or we fully remove the old Node Sass API,
we can get rid of fiber support entirely.
We expect these checks to succeed almost all the time, and we really
only need them as a backstop to ensure we don't deploy a change that
breaks real-world users.
In a future commit, I'll update these jobs to only run just before
release, since they're expected to be substantially less likely to
fail and we don't want to waste cycles. For now, I have them runnning
always to verify that they run successfully at least once.
This check was previously checking whether *any* variables were left
in this configuration, which could include variables that were adopted
from outer configurations. This threw invalid errors when that outer
configuration would have been satisfied by another variable (or
forward) later in the file.
Closessass/sass#1460
`@at-root` should now work properly in a nested import as long as the
only `@use` or `@forward` rules present are for built-in modules.
This is a partial but not complete fix for #1347. It's a bit hacky to
special case built-in modules here, but since they represent the only
real legitimate case for using this combination of features, it lets us
fix the bug for this case and avoid the bordering-on-infeasible work of
fixing this for user-defined modules.
These getters are only available through the sass_api package. This
will allow the Sass embedded compiler to more explicitly send the
color information it has on hand.
Fixes#1401 and #1414.
Adds `Dependency`, `SassDeclaration`, and `SassReference` interfaces,
which expose some getters that multiple AST nodes have in common with a
single type.
These also add getters for common subspans (URL, name, and namespace) to
the interfaces.