Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Released 2022-09-18. Progress: 4500 of 6843 tests passed (or 4673 if ignoring some deprecation messages). Breaking changes * A `BuiltinFn` now takes a `&ResolvedArgs` rather than a `&ScopeRef` as argument (PR #157). * `@extend` is still unsupported, but now some uses of it (e.g. in control structures) will result in an error instead of wrong output. * Some `sass::Item` alternatives now contain a `Callable`, combining `FormalArgs` with a body (a `Vec<Item>`). And `sass::Item::Content` now has a `CallArgs`. Also, `MixinDeclImpl` is replaced with `sass::Closure`. (PR #146). * `sass::CallArgs::new()` has an additional `trailing_comma` boolean argument (PR #147). * Remove deprecated methods `css::Value::integer_value()` and `Number::is_integer()`. * Changed the error type of `Scope::get_function()`. * Setting a variable, `Scope::define` now takes the `Value` by value rather than by reference. Also, `Scope::define_multi` is no longer exposed in the api. * Renamed one variant of `ScopeError` and added two others. * The sass `Value::Variable` and `Item::VariableDeclaration` variants now holds a `Name` rather than just a `String` for the variable name. Also, both now holds a `SourcePos`. * Changes in `Error` representation. Many errors are now constructed like `Invalid::SomeVariant.at(pos)` (PR #145). * `Error::error` now takes an `Into<String>` argument (PR #151). * The module `input` contains types types with `Context<L>`, `Loader`, `FsLoader`, and `FsContext`, replacing the old `FileContext` and `FsFileContext`. Also, the types `SourceKind`, `SourceName` and `Parsed` are moved from top-level into the `input` module (PR #150). * The `parse_scss_data` function is removed. Please create a `SourceFile` and use the `parse` method on that instead (PR #150). * The `Format::write_root` method are removed, `Context::transform` should be used instad (PR #152). Improvements * `input::Context` is the new main interface to rsass. Create a context suitable for how files should be loaded, configure it with an output format and optionally extend the global scope before calling `Context::transform` with an input file (PR #151, PR #152). * Also provide `CargoContext` / `CargoLoader` for convenient use in build scripts (PR #154). * The way to get argument values from the implementation of a builtin function is refactored to handle both any type that implements `TryFrom<Value>` and explicit validation/conversion methods nicer, and is now availiable for implementing builtin functions (extensions) outside of rsass itself (PR #157). * The `@content` can have arguments when declaring and calling a mixin (PR #146). * Variable declartions can be scoped (like `module.$var: value`). Some error reporting improvements (PR #148). * Allow interpolation in css min and max function arguments. * The url for `@use` and `@forward` must be quoted. * Improve detection of import loops (PR #150). * When loading files, Don't apply suffix / index-adding rules if the file name already has a suffix (PR #150). * Some `@` rules are now forbidden in some places as they should (PR #145). * The css `var(...)` function is now parsed as a proper function, and not as a special string (PR #147). * The null value can be quoted as an empty string (PR #147). * Make `Debug` formatting of `rsass::Error` look like the `Display` output, but without the "Error: " prefix. This makes the error display correctly if returned from a main function. This also removed the "Error: " prefix from a lot of message strings (PR #151). * In error message, don't show ellipses for consecutive lines (PR #147). * Somtimes a trailing comma in argument lists is preserved (PR #147). * Simplified `main` of the command-line by returning a `Result` (PR #151). * Update sass-spec test suite to 2022-09-15. * Handle tests referencing `input.scss` in spectest (include it among the mock files, if mentioned in itself or any existing mock file) (PR #150). * Use `lazy-regex` in spectest (PR #150). * Rsass now uses rust edition 2021, so MSRV is 1.56.0 (PR #153). * Some cleanups. * The main branch is now named `main` rather than `master`. Thanks to @fasterthanlime (again) for reporting the problem with interpolation in min and max.
- Loading branch information