summaryrefslogtreecommitdiffstats
path: root/theme-compiler
diff options
context:
space:
mode:
authorSebastian Nyholm <sebastian@vaadin.com>2012-11-15 17:45:19 +0200
committerSebastian Nyholm <sebastian@vaadin.com>2012-11-15 17:45:19 +0200
commit0bfa96ee1e05ad0867eb22e05a44e3a4290ec586 (patch)
tree2064433c55e5799077c1ea87ee7b4fae2c2ba8b4 /theme-compiler
parente54ff59fbe6a5452b469a355176351cd710663d1 (diff)
downloadvaadin-framework-0bfa96ee1e05ad0867eb22e05a44e3a4290ec586.tar.gz
vaadin-framework-0bfa96ee1e05ad0867eb22e05a44e3a4290ec586.zip
(#10174) Value of a variable cannot be assigned to another variable
Change-Id: Ib6879b685259c775fc9159e572c182093ae69f8d
Diffstat (limited to 'theme-compiler')
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/VariableNode.java2
-rw-r--r--theme-compiler/src/com/vaadin/sass/visitor/MixinNodeHandler.java1
-rw-r--r--theme-compiler/tests/resources/css/variables.css1
-rw-r--r--theme-compiler/tests/resources/scss/variables.scss3
-rw-r--r--theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java6
5 files changed, 10 insertions, 3 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
index 3ea8379829..89cab33129 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
@@ -77,6 +77,8 @@ public class VariableNode extends Node implements IVariableNode {
&& expr.getParameters().toString()
.contains("$" + node.getName())) {
replaceValues(expr.getParameters(), node);
+ } else if (expr.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE) {
+ replaceValues(expr, node);
}
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/visitor/MixinNodeHandler.java b/theme-compiler/src/com/vaadin/sass/visitor/MixinNodeHandler.java
index 3c31ee1073..4875a39b1d 100644
--- a/theme-compiler/src/com/vaadin/sass/visitor/MixinNodeHandler.java
+++ b/theme-compiler/src/com/vaadin/sass/visitor/MixinNodeHandler.java
@@ -48,6 +48,7 @@ public class MixinNodeHandler {
Node pre = mixinNode;
MixinDefNode defClone = (MixinDefNode) DeepCopy.copy(mixinDef);
+ defClone.traverse();
if (mixinDef.getArglist().isEmpty()) {
for (Node child : new ArrayList<Node>(defClone.getChildren())) {
diff --git a/theme-compiler/tests/resources/css/variables.css b/theme-compiler/tests/resources/css/variables.css
index d54ae6cd30..ae5ac5e01c 100644
--- a/theme-compiler/tests/resources/css/variables.css
+++ b/theme-compiler/tests/resources/css/variables.css
@@ -3,6 +3,7 @@
color: #0000ff;
color1: #0000d1;
font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+ font-size: 12px;
}
.border {
diff --git a/theme-compiler/tests/resources/scss/variables.scss b/theme-compiler/tests/resources/scss/variables.scss
index 60acc5dd10..2448aaddb9 100644
--- a/theme-compiler/tests/resources/scss/variables.scss
+++ b/theme-compiler/tests/resources/scss/variables.scss
@@ -1,6 +1,7 @@
$blue: #3bbfce;
$margin: 8px;
$chameleon-font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
+$font: 12px;
.content-navigation {
border-color: $blue;
@@ -8,6 +9,8 @@ $chameleon-font-family: Arial, Helvetica, "Lucida Grande", "Lucida Sans Unicode"
color: $blue;
color1: darken($blue, 9%);
font-family: $chameleon-font-family;
+ $font-size: $font;
+ font-size: $font-size;
}
.border {
diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java
index d56a9dee9d..32984c53ec 100644
--- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java
+++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/Variables.java
@@ -45,7 +45,7 @@ public class Variables extends AbstractTestBase {
parser.setDocumentHandler(handler);
parser.parseStyleSheet(getClass().getResource(scss).getPath());
ScssStylesheet root = handler.getStyleSheet();
- Assert.assertEquals(5, root.getChildren().size());
+ Assert.assertEquals(6, root.getChildren().size());
VariableNode varNode1 = (VariableNode) root.getChildren().get(0);
Assert.assertEquals("blue", varNode1.getName());
@@ -58,7 +58,7 @@ public class Variables extends AbstractTestBase {
Assert.assertEquals(8f, varNode2.getExpr().getFloatValue());
Assert.assertEquals("px", varNode2.getExpr().getDimensionUnitText());
- BlockNode blockNode1 = (BlockNode) root.getChildren().get(4);
+ BlockNode blockNode1 = (BlockNode) root.getChildren().get(5);
Assert.assertEquals(3, blockNode1.getChildren().size());
RuleNode ruleNode1Block1 = (RuleNode) blockNode1.getChildren().get(2);
Assert.assertEquals("border-color", ruleNode1Block1.getVariable());
@@ -72,7 +72,7 @@ public class Variables extends AbstractTestBase {
.getValue().getLexicalUnitType());
Assert.assertEquals("blue", ruleNode2Block1.getValue().getStringValue());
- BlockNode blockNode2 = (BlockNode) root.getChildren().get(4);
+ BlockNode blockNode2 = (BlockNode) root.getChildren().get(5);
RuleNode ruleNode1Block2 = (RuleNode) blockNode2.getChildren().get(0);
Assert.assertEquals("padding", ruleNode1Block2.getVariable());
Assert.assertEquals(SCSSLexicalUnit.SCSS_VARIABLE, ruleNode1Block2