From 9d31cb72cda2fba1471a1883ea576accc23adcfd Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Thu, 15 Mar 2018 14:49:13 -0700 Subject: [PATCH] Allow mod 0 To match the behavior of dividing by zero, this should produce NaN rather than failing. See also #1228 --- .../expected_output-dart-sass.css | 6 ++++-- .../basic/15_arithmetic_and_lists/expected_output.css | 6 ++++-- spec/basic/15_arithmetic_and_lists/input.scss | 11 ++++++++--- spec/basic/15_arithmetic_and_lists/options.yml | 3 +++ spec/errors/mod-zero/error | 2 -- spec/errors/mod-zero/expected_output.css | 0 spec/errors/mod-zero/input.scss | 3 --- spec/errors/mod-zero/options.yml | 4 ---- spec/errors/mod-zero/status | 1 - 9 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 spec/basic/15_arithmetic_and_lists/options.yml delete mode 100644 spec/errors/mod-zero/error delete mode 100644 spec/errors/mod-zero/expected_output.css delete mode 100644 spec/errors/mod-zero/input.scss delete mode 100644 spec/errors/mod-zero/options.yml delete mode 100644 spec/errors/mod-zero/status diff --git a/spec/basic/15_arithmetic_and_lists/expected_output-dart-sass.css b/spec/basic/15_arithmetic_and_lists/expected_output-dart-sass.css index 82ae5b2545..f0d1b6e32a 100644 --- a/spec/basic/15_arithmetic_and_lists/expected_output-dart-sass.css +++ b/spec/basic/15_arithmetic_and_lists/expected_output-dart-sass.css @@ -25,6 +25,8 @@ div { r: 64em; s: 2.5em; t: 120.754/5 6/7; - u: Infinity; - v: NaN; + one-over-zero: Infinity; + zero-over-zero: NaN; + one-mod-zero: NaN; + zero-mod-zero: NaN; } diff --git a/spec/basic/15_arithmetic_and_lists/expected_output.css b/spec/basic/15_arithmetic_and_lists/expected_output.css index 0cf4bd3366..519118f120 100644 --- a/spec/basic/15_arithmetic_and_lists/expected_output.css +++ b/spec/basic/15_arithmetic_and_lists/expected_output.css @@ -25,6 +25,8 @@ div { r: 64em; s: 2.5em; t: 120.754/5 6/7; - u: Infinity; - v: NaN; + one-over-zero: Infinity; + zero-over-zero: NaN; + one-mod-zero: NaN; + zero-mod-zero: NaN; } diff --git a/spec/basic/15_arithmetic_and_lists/input.scss b/spec/basic/15_arithmetic_and_lists/input.scss index 4d7f0856ee..05aa5911ae 100644 --- a/spec/basic/15_arithmetic_and_lists/input.scss +++ b/spec/basic/15_arithmetic_and_lists/input.scss @@ -29,6 +29,11 @@ div { r: 16em * 4; s: (5em / 2); t: 1 + (2 + (3/4 + (4/5 6/7))); - u: (1 / 0); // Infinity - v: (0 / 0); // NaN -} \ No newline at end of file + + // Arithmetic operations in Sass should never fail, since we implicitly use + // floating-point for all numbers. + one-over-zero: (1 / 0); + zero-over-zero: (0 / 0); + one-mod-zero: 1 % 0; + zero-mod-zero: 0 % 0; +} diff --git a/spec/basic/15_arithmetic_and_lists/options.yml b/spec/basic/15_arithmetic_and_lists/options.yml new file mode 100644 index 0000000000..32792ae3c6 --- /dev/null +++ b/spec/basic/15_arithmetic_and_lists/options.yml @@ -0,0 +1,3 @@ +--- +:todo: +- libsass diff --git a/spec/errors/mod-zero/error b/spec/errors/mod-zero/error deleted file mode 100644 index 78aebfd408..0000000000 --- a/spec/errors/mod-zero/error +++ /dev/null @@ -1,2 +0,0 @@ -ZeroDivisionError: divided by 0 - Use --trace for backtrace. diff --git a/spec/errors/mod-zero/expected_output.css b/spec/errors/mod-zero/expected_output.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/spec/errors/mod-zero/input.scss b/spec/errors/mod-zero/input.scss deleted file mode 100644 index f2c2a367c5..0000000000 --- a/spec/errors/mod-zero/input.scss +++ /dev/null @@ -1,3 +0,0 @@ -test { - test: (1 % 0); -} \ No newline at end of file diff --git a/spec/errors/mod-zero/options.yml b/spec/errors/mod-zero/options.yml deleted file mode 100644 index 7d657508b6..0000000000 --- a/spec/errors/mod-zero/options.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -:todo: -- ruby-sass -- dart-sass diff --git a/spec/errors/mod-zero/status b/spec/errors/mod-zero/status deleted file mode 100644 index b44fe09a7a..0000000000 --- a/spec/errors/mod-zero/status +++ /dev/null @@ -1 +0,0 @@ -65 \ No newline at end of file