From c5181800980f0a24dfaa5fe71fba813a6a80542a Mon Sep 17 00:00:00 2001 From: ChenLei <2470828450@qq.com> Date: Sun, 13 Jun 2021 01:19:49 +0800 Subject: [PATCH] Fix #3616 IfStatement requires double parentheses when dividing (#3626) * fix: fix the special parens case * fix the issue number --- packages/less/src/less/functions/function-caller.js | 4 ++++ packages/test-data/css/math/parens-division/parens.css | 5 +++++ packages/test-data/css/math/strict/parens.css | 5 +++++ packages/test-data/less/math/parens-division/parens.less | 6 ++++++ packages/test-data/less/math/strict/parens.less | 6 ++++++ 5 files changed, 26 insertions(+) diff --git a/packages/less/src/less/functions/function-caller.js b/packages/less/src/less/functions/function-caller.js index 109923f25..4a46ec74b 100644 --- a/packages/less/src/less/functions/function-caller.js +++ b/packages/less/src/less/functions/function-caller.js @@ -32,6 +32,10 @@ class functionCaller { if (item.type === 'Expression') { const subNodes = item.value.filter(commentFilter); if (subNodes.length === 1) { + // https://github.com/less/less.js/issues/3616 + if (item.parens && subNodes[0].op === '/') { + return item; + } return subNodes[0]; } else { return new Expression(subNodes); diff --git a/packages/test-data/css/math/parens-division/parens.css b/packages/test-data/css/math/parens-division/parens.css index 86c9cbc96..cc1efdf67 100644 --- a/packages/test-data/css/math/parens-division/parens.css +++ b/packages/test-data/css/math/parens-division/parens.css @@ -1,3 +1,8 @@ +.parens-issues-3616 { + bar: 888 / 444; + bar2: 2; + bar3: 2; +} .parens { border: 2px solid black; margin: 1px 3px 16 3; diff --git a/packages/test-data/css/math/strict/parens.css b/packages/test-data/css/math/strict/parens.css index c234b7bda..784ed898d 100644 --- a/packages/test-data/css/math/strict/parens.css +++ b/packages/test-data/css/math/strict/parens.css @@ -1,3 +1,8 @@ +.parens-issues-3616 { + bar: 888 / 444; + bar2: 2; + bar3: 2; +} .parens { border: 2px solid black; margin: 1px 3px 16 3; diff --git a/packages/test-data/less/math/parens-division/parens.less b/packages/test-data/less/math/parens-division/parens.less index 947a2c14f..ac24dc007 100644 --- a/packages/test-data/less/math/parens-division/parens.less +++ b/packages/test-data/less/math/parens-division/parens.less @@ -1,3 +1,9 @@ +.parens-issues-3616 { + bar: if(false, 666, 888 / 444); + bar2: if(false, 666, (666 / 333)); + bar3: if(false, 666, ((444 / 222))); +} + .parens { @var: 1px; border: (@var * 2) solid black; diff --git a/packages/test-data/less/math/strict/parens.less b/packages/test-data/less/math/strict/parens.less index 947a2c14f..ac24dc007 100644 --- a/packages/test-data/less/math/strict/parens.less +++ b/packages/test-data/less/math/strict/parens.less @@ -1,3 +1,9 @@ +.parens-issues-3616 { + bar: if(false, 666, 888 / 444); + bar2: if(false, 666, (666 / 333)); + bar3: if(false, 666, ((444 / 222))); +} + .parens { @var: 1px; border: (@var * 2) solid black;