diff --git a/bind.cpp b/bind.cpp index 207681fa65..667c31613f 100644 --- a/bind.cpp +++ b/bind.cpp @@ -142,9 +142,7 @@ namespace Sass { break; } // otherwise move one of the rest args into the param, converting to argument if necessary - if (arglist->is_arglist()) { - a = static_cast((*arglist)[0]); - } else { + if (!(a = dynamic_cast((*arglist)[0]))) { Expression* a_to_convert = (*arglist)[0]; a = new (ctx.mem) Argument(a_to_convert->pstate(), a_to_convert, diff --git a/eval.cpp b/eval.cpp index 7462d1507a..735cd21e71 100644 --- a/eval.cpp +++ b/eval.cpp @@ -703,10 +703,8 @@ namespace Sass { if (result->pstate().file == string::npos) result->pstate(c->pstate()); - do { - result->is_delayed(result->concrete_type() == Expression::STRING); - result = result->perform(this); - } while (result->concrete_type() == Expression::NONE); + result->is_delayed(result->concrete_type() == Expression::STRING); + if (!result->is_delayed()) result = result->perform(this); return result; }