Skip to content
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

Implement values with multiple units. #97

Merged
merged 1 commit into from
Feb 27, 2021
Merged

Implement values with multiple units. #97

merged 1 commit into from
Feb 27, 2021

Conversation

kaj
Copy link
Owner

@kaj kaj commented Feb 27, 2021

This makes e.g. abs(-7px / 4em) * 1em evaluate correctly, to 1.75px.

Also correct the dpi/dpcm/dppx conversion factors, which were bogus.

@kaj kaj changed the title Implment values with multiple units. Implement values with multiple units. Feb 27, 2021
@kaj kaj force-pushed the multi-unit branch 3 times, most recently from 760f7b1 to beac769 Compare February 27, 2021 15:28
@kaj kaj merged commit d2af8e1 into master Feb 27, 2021
@kaj kaj deleted the multi-unit branch February 27, 2021 16:24
kaj added a commit that referenced this pull request Mar 14, 2021
Progress: 3371 of 5945 tests passed in dart-sass compatibility mode.

### Breaking changes

* The unit of a `Numeric` is now a `UnitSet` rather than a `Unit`.
* `Error` has new variants and a new field in `BadArguments`.
* A sass::Value::Call now has a source position.
* A `Rational` is now a `Ratio<i64>` rather than a `Ratio<isize>`.

### Improvements

* Added a Contributing section to readme.
* Handle values with multiple units. PR #97.
* Show call position for errors in function calls, and test for type
  errors in many standard functions. Many error messages are made
  identical to dart-sass, improving test-suit progress with more than
  400 tests.  PR #99.
* Fix issue #98: overflow in rational number arithmetic.
* Allow `@at-root` at document root.
* Boolean operators is truly lazy, e.g. `false and f($x)` does not call `f`.
* Refactored number parsing to use overflowing rationals. PR #100.
* Test suite sass-spec updated to 2021-03-02.
* Updated num-rational and num-bigint to 0.4.0.

Thanks to @alvra for reporting #98.

Tested with rustc 1.50.0 (cb75ad5db 2021-02-10),
rustc 1.48.0 (7eac88abb 2020-11-16),
rustc 1.46.0 (04488afe3 2020-08-24),
rustc 1.44.1 (c7087fe00 2020-06-17),
rustc 1.51.0-beta.6 (6a1835ad7 2021-03-12), and
rustc 1.52.0-nightly (acca81892 2021-03-13).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant