@@ -502,7 +502,7 @@ namespace Sass {
502502 // only the last item will be used to eval the binary expression
503503 if (String_Schema* s_l = dynamic_cast <String_Schema*>(b->left ())) {
504504 if (!s_l->has_interpolant () && (!s_l->is_right_interpolant ())) {
505- ret_schema = SASS_MEMORY_NEW (ctx.mem , String_Schema, s_l ->pstate ());
505+ ret_schema = SASS_MEMORY_NEW (ctx.mem , String_Schema, b ->pstate ());
506506 Binary_Expression* bin_ex = SASS_MEMORY_NEW (ctx.mem , Binary_Expression, b->pstate (),
507507 b->op (), s_l->last (), b->right ());
508508 bin_ex->is_delayed (b->left ()->is_delayed () || b->right ()->is_delayed ()); // unverified
@@ -515,7 +515,7 @@ namespace Sass {
515515 }
516516 if (String_Schema* s_r = dynamic_cast <String_Schema*>(b->right ())) {
517517 if (!s_r->has_interpolant () && (!s_r->is_left_interpolant () || op_type == Sass_OP::DIV)) {
518- ret_schema = SASS_MEMORY_NEW (ctx.mem , String_Schema, s_r ->pstate ());
518+ ret_schema = SASS_MEMORY_NEW (ctx.mem , String_Schema, b ->pstate ());
519519 Binary_Expression* bin_ex = SASS_MEMORY_NEW (ctx.mem , Binary_Expression, b->pstate (),
520520 b->op (), b->left (), s_r->first ());
521521 bin_ex->is_delayed (b->left ()->is_delayed () || b->right ()->is_delayed ()); // verified
@@ -599,15 +599,15 @@ namespace Sass {
599599 std::string value (str->value ());
600600 const char * start = value.c_str ();
601601 if (Prelexer::sequence < Prelexer::dimension, Prelexer::end_of_file >(start) != 0 ) {
602- lhs = SASS_MEMORY_NEW (ctx.mem , Textual, lhs ->pstate (), Textual::DIMENSION, str->value ());
602+ lhs = SASS_MEMORY_NEW (ctx.mem , Textual, b ->pstate (), Textual::DIMENSION, str->value ());
603603 lhs = lhs->perform (this );
604604 }
605605 }
606606 if (String_Constant* str = dynamic_cast <String_Constant*>(rhs)) {
607607 std::string value (str->value ());
608608 const char * start = value.c_str ();
609609 if (Prelexer::sequence < Prelexer::number >(start) != 0 ) {
610- rhs = SASS_MEMORY_NEW (ctx.mem , Textual, rhs ->pstate (), Textual::DIMENSION, str->value ());
610+ rhs = SASS_MEMORY_NEW (ctx.mem , Textual, b ->pstate (), Textual::DIMENSION, str->value ());
611611 rhs = rhs->perform (this );
612612 }
613613 }
@@ -636,7 +636,7 @@ namespace Sass {
636636 str += b->separator ();
637637 if (b->op ().ws_after ) str += " " ;
638638 str += v_r->to_string (ctx.c_options );
639- String_Constant* val = SASS_MEMORY_NEW (ctx.mem , String_Constant, lhs ->pstate (), str);
639+ String_Constant* val = SASS_MEMORY_NEW (ctx.mem , String_Constant, b ->pstate (), str);
640640 val->is_interpolant (b->left ()->has_interpolant ());
641641 return val;
642642 }
@@ -1545,7 +1545,7 @@ namespace Sass {
15451545 (sep != "/" || !rqstr || !rqstr->quote_mark()) */
15461546 ) {
15471547 // create a new string that might be quoted on output (but do not unquote what we pass)
1548- return SASS_MEMORY_NEW (mem, String_Quoted, lhs.pstate (), lstr + rstr, 0 , false , true );
1548+ return SASS_MEMORY_NEW (mem, String_Quoted, pstate ? *pstate : lhs.pstate (), lstr + rstr, 0 , false , true );
15491549 }
15501550
15511551 if (sep != " " && !delayed) {
@@ -1558,7 +1558,7 @@ namespace Sass {
15581558 if (rqstr && rqstr->quote_mark ()) rstr = quote (rstr);
15591559 }
15601560
1561- return SASS_MEMORY_NEW (mem, String_Constant, lhs.pstate (), lstr + sep + rstr);
1561+ return SASS_MEMORY_NEW (mem, String_Constant, pstate ? *pstate : lhs.pstate (), lstr + sep + rstr);
15621562 }
15631563
15641564 Expression* cval_to_astnode (Memory_Manager& mem, union Sass_Value* v, Context& ctx, Backtrace* backtrace, ParserState pstate)
0 commit comments