From b03345ec18fcff23d91269728c0f3f9a2f089edc Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Tue, 25 Nov 2014 17:01:10 -0500 Subject: [PATCH] bugfix: dump of list comprehension if expression was buggy --- src/expr.cc | 2 +- testdata/scad/misc/allexpressions.scad | 2 +- tests/regression/moduledumptest/allexpressions-expected.ast | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/expr.cc b/src/expr.cc index ea83ba24..a1bf5d2a 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -375,7 +375,7 @@ std::string Expression::toString() const stream << "for(" << c->call_arguments << ") "; c = c->children[0]; } else if (c->call_funcname == "if") { - stream << "if(" << c->children[0] << ") "; + stream << "if(" << *c->children[0] << ") "; c = c->children[1]; } else if (c->call_funcname == "let") { stream << "let(" << c->call_arguments << ") "; diff --git a/testdata/scad/misc/allexpressions.scad b/testdata/scad/misc/allexpressions.scad index 343da119..ed926567 100644 --- a/testdata/scad/misc/allexpressions.scad +++ b/testdata/scad/misc/allexpressions.scad @@ -29,4 +29,4 @@ z = (j); aa = k ? l : m; bb = n[o]; cc = let(a=1) a; -dd = [for (a=[0,1]) a]; +dd = [for (a=[0,1]) let(b=a) if (true) b]; diff --git a/tests/regression/moduledumptest/allexpressions-expected.ast b/tests/regression/moduledumptest/allexpressions-expected.ast index 04006552..e0eaef79 100644 --- a/tests/regression/moduledumptest/allexpressions-expected.ast +++ b/tests/regression/moduledumptest/allexpressions-expected.ast @@ -29,5 +29,5 @@ z = j; aa = (k ? l : m); bb = n[o]; cc = let(a = 1) a; -dd = [for(a = [0, 1]) a]; +dd = [for(a = [0, 1]) let(b = a) if(true) b];