@@ -477,7 +477,7 @@ function checkTuple(x) {
477477 x . assert ( p . elems [ 0 ] . getRaw ( ) . length , 3 ) ;
478478 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . error , null ) ;
479479 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . kind , 'string' ) ;
480- x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value , '.result-a .a ' ) ;
480+ x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . displayInCode ( ) , '" .result-"+"a"+" ."+"a" ' ) ;
481481 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . error , null ) ;
482482 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . kind , 'json' ) ;
483483 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . getRaw ( ) . length , 1 ) ;
@@ -507,7 +507,7 @@ function checkTuple(x) {
507507 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value , '1' ) ;
508508 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . error , null ) ;
509509 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . kind , 'string' ) ;
510- x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . value , '.result-a ' ) ;
510+ x . assert ( p . elems [ 0 ] . getRaw ( ) [ 1 ] . displayInCode ( ) , '" .result-"+"a" ' ) ;
511511 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 2 ] . error , null ) ;
512512 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 2 ] . kind , 'json' ) ;
513513 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 2 ] . getRaw ( ) . length , 1 ) ;
@@ -1579,7 +1579,8 @@ assert-css: (".item-left sup", {"color": |color|})`);
15791579 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . key . getErrorText ( ) , '"x"' ) ;
15801580 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . kind , 'string' ) ;
15811581 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . getErrorText ( ) , '2 + |y|' ) ;
1582- x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . getRaw ( ) , '2a' ) ;
1582+ x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . getRaw ( ) . length , 3 ) ;
1583+ x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . displayInCode ( ) , '2+"a"' ) ;
15831584
15841585
15851586 p = new Parser ( '{"x" {"y": 1}}' ) ;
@@ -1936,39 +1937,39 @@ function checkExpr(x) {
19361937 x . assert ( p . elems . length , 1 ) ;
19371938 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19381939 x . assert ( p . elems [ 0 ] . error , null ) ;
1939- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'ab ' ) ;
1940+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+"b" ' ) ;
19401941 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + "b" ' ) ;
19411942
19421943 p = inferredValues ( '"a" + "b"' ) ;
19431944 x . assert ( p . errors , [ ] ) ;
19441945 x . assert ( p . elems . length , 1 ) ;
19451946 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19461947 x . assert ( p . elems [ 0 ] . error , null ) ;
1947- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'ab ' ) ;
1948+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+"b" ' ) ;
19481949 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + "b"' ) ;
19491950
19501951 p = inferredValues ( '"a" + 1 ' ) ;
19511952 x . assert ( p . errors , [ ] ) ;
19521953 x . assert ( p . elems . length , 1 ) ;
19531954 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19541955 x . assert ( p . elems [ 0 ] . error , null ) ;
1955- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'a1 ' ) ;
1956+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+1 ' ) ;
19561957 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + 1 ' ) ;
19571958
19581959 p = inferredValues ( '1 + "a" ' ) ;
19591960 x . assert ( p . errors , [ ] ) ;
19601961 x . assert ( p . elems . length , 1 ) ;
19611962 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19621963 x . assert ( p . elems [ 0 ] . error , null ) ;
1963- x . assert ( p . elems [ 0 ] . getRaw ( ) , '1a ' ) ;
1964+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '1+"a" ' ) ;
19641965 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '1 + "a" ' ) ;
19651966
19661967 p = inferredValues ( '1 + "a" + 4 + "bcd"' ) ;
19671968 x . assert ( p . errors , [ ] ) ;
19681969 x . assert ( p . elems . length , 1 ) ;
19691970 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19701971 x . assert ( p . elems [ 0 ] . error , null ) ;
1971- x . assert ( p . elems [ 0 ] . getRaw ( ) , '1a4bcd ' ) ;
1972+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '1+"a"+4+"bcd" ' ) ;
19721973 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '1 + "a" + 4 + "bcd"' ) ;
19731974
19741975 process . env [ 'variable' ] = 'hello' ;
@@ -1977,7 +1978,7 @@ function checkExpr(x) {
19771978 x . assert ( p . elems . length , 1 ) ;
19781979 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19791980 x . assert ( p . elems [ 0 ] . error , null ) ;
1980- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'hello2 ' ) ;
1981+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"hello"+2 ' ) ;
19811982 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '|variable| + 2' ) ;
19821983
19831984 process . env [ 'variable' ] = '1' ;
@@ -1995,39 +1996,39 @@ function checkExpr(x) {
19951996 x . assert ( p . elems . length , 1 ) ;
19961997 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
19971998 x . assert ( p . elems [ 0 ] . error , null ) ;
1998- x . assert ( p . elems [ 0 ] . getRaw ( ) , '12 ' ) ;
1999+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '1+""+2 ' ) ;
19992000 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '1 + "" + 2' ) ;
20002001
20012002 p = inferredValues ( '1 + 2 + "a"' ) ;
20022003 x . assert ( p . errors , [ ] ) ;
20032004 x . assert ( p . elems . length , 1 ) ;
20042005 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
20052006 x . assert ( p . elems [ 0 ] . error , null ) ;
2006- x . assert ( p . elems [ 0 ] . getRaw ( ) , '12a ' ) ;
2007+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '1+2+"a" ' ) ;
20072008 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '1 + 2 + "a"' ) ;
20082009
20092010 p = inferredValues ( '"a" + 1 + 2' ) ;
20102011 x . assert ( p . errors , [ ] ) ;
20112012 x . assert ( p . elems . length , 1 ) ;
20122013 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
20132014 x . assert ( p . elems [ 0 ] . error , null ) ;
2014- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'a12 ' ) ;
2015+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+1+2 ' ) ;
20152016 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + 1 + 2' ) ;
20162017
20172018 p = inferredValues ( '"a" + 1 + \n2' ) ;
20182019 x . assert ( p . errors , [ ] ) ;
20192020 x . assert ( p . elems . length , 1 ) ;
20202021 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
20212022 x . assert ( p . elems [ 0 ] . error , null ) ;
2022- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'a12 ' ) ;
2023+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+1+2 ' ) ;
20232024 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + 1 + \n2' ) ;
20242025
20252026 p = inferredValues ( '"a" + 1 + // comment?\n2' ) ;
20262027 x . assert ( p . errors , [ ] ) ;
20272028 x . assert ( p . elems . length , 1 ) ;
20282029 x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
20292030 x . assert ( p . elems [ 0 ] . error , null ) ;
2030- x . assert ( p . elems [ 0 ] . getRaw ( ) , 'a12 ' ) ;
2031+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '"a"+1+2 ' ) ;
20312032 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '"a" + 1 + // comment?\n2' ) ;
20322033
20332034 p = inferredValues ( '{"x" + 2: 1,}' ) ;
@@ -2038,7 +2039,7 @@ function checkExpr(x) {
20382039 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '{"x" + 2: 1,}' ) ;
20392040 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . key . kind , 'string' ) ;
20402041 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . key . getErrorText ( ) , '"x" + 2' ) ;
2041- x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . key . getRaw ( ) , 'x2 ' ) ;
2042+ x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . key . displayInCode ( ) , '"x"+2 ' ) ;
20422043 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . kind , 'number' ) ;
20432044 x . assert ( p . elems [ 0 ] . getRaw ( ) [ 0 ] . value . getRaw ( ) , '1' ) ;
20442045
@@ -2180,6 +2181,20 @@ function checkExpr(x) {
21802181 x . assert ( p . elems [ 0 ] . error , null ) ;
21812182 x . assert ( p . elems [ 0 ] . getRaw ( ) , '!compareArrayLike(["1", 1], ["a", 3, 2])' ) ;
21822183 x . assert ( p . elems [ 0 ] . getErrorText ( ) , '("1", 1) != ("a", 3, 2)' ) ;
2184+
2185+ p = inferredValues ( '(1 * 3) + "a"' ) ;
2186+ x . assert ( p . errors , [ ] ) ;
2187+ x . assert ( p . elems . length , 1 ) ;
2188+ x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
2189+ x . assert ( p . elems [ 0 ] . error , null ) ;
2190+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '(1 * 3)+"a"' ) ;
2191+
2192+ p = inferredValues ( '(|x| * 3) + "a"' , { 'x' : 1 } ) ;
2193+ x . assert ( p . errors , [ ] ) ;
2194+ x . assert ( p . elems . length , 1 ) ;
2195+ x . assert ( p . elems [ 0 ] . kind , 'string' ) ;
2196+ x . assert ( p . elems [ 0 ] . error , null ) ;
2197+ x . assert ( p . elems [ 0 ] . displayInCode ( ) , '(1 * 3)+"a"' ) ;
21832198}
21842199
21852200function checkBlock ( x ) {
@@ -2448,11 +2463,12 @@ function checkObjectPath(x) {
24482463 x . assert ( p . elems . length , 1 ) ;
24492464 x . assert ( p . elems [ 0 ] . kind , 'object-path' ) ;
24502465 x . assert ( p . elems [ 0 ] . error , null ) ;
2466+ x . assert ( p . elems [ 0 ] . getStringValue ( ) , '["a","b"+"c","d"]' ) ;
24512467 x . assert ( p . elems [ 0 ] . value . length , 3 ) ;
24522468 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
24532469 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
24542470 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2455- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'bc ' ) ;
2471+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+"c" ' ) ;
24562472 x . assert ( p . elems [ 0 ] . value [ 2 ] . kind , 'string' ) ;
24572473 x . assert ( p . elems [ 0 ] . value [ 2 ] . value , 'd' ) ;
24582474
@@ -2463,7 +2479,7 @@ function checkObjectPath(x) {
24632479 x . assert ( p . elems [ 0 ] . error , null ) ;
24642480 x . assert ( p . elems [ 0 ] . value . length , 2 ) ;
24652481 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
2466- x . assert ( p . elems [ 0 ] . value [ 0 ] . value , '2c ' ) ;
2482+ x . assert ( p . elems [ 0 ] . value [ 0 ] . displayInCode ( ) , '2+"c" ' ) ;
24672483 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
24682484 x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'd' ) ;
24692485
@@ -2476,7 +2492,7 @@ function checkObjectPath(x) {
24762492 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
24772493 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
24782494 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2479- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'b2c ' ) ;
2495+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+2+"c" ' ) ;
24802496 x . assert ( p . elems [ 0 ] . value [ 2 ] . kind , 'string' ) ;
24812497 x . assert ( p . elems [ 0 ] . value [ 2 ] . value , 'd' ) ;
24822498
@@ -2489,7 +2505,7 @@ function checkObjectPath(x) {
24892505 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
24902506 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
24912507 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2492- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'bc ' ) ;
2508+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+"c" ' ) ;
24932509
24942510 p = inferredValues ( '"a"."b" + 2' ) ;
24952511 x . assert ( p . errors , [ ] ) ;
@@ -2500,7 +2516,7 @@ function checkObjectPath(x) {
25002516 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
25012517 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
25022518 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2503- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'b2 ' ) ;
2519+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+2 ' ) ;
25042520
25052521 p = inferredValues ( '"a"."b" + "c" + 2' ) ;
25062522 x . assert ( p . errors , [ ] ) ;
@@ -2511,7 +2527,7 @@ function checkObjectPath(x) {
25112527 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
25122528 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
25132529 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2514- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'bc2 ' ) ;
2530+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+"c"+2 ' ) ;
25152531
25162532 p = inferredValues ( '"a"."b" + |c| + 2' , { 'c' : 'r' } ) ;
25172533 x . assert ( p . errors , [ ] ) ;
@@ -2522,7 +2538,7 @@ function checkObjectPath(x) {
25222538 x . assert ( p . elems [ 0 ] . value [ 0 ] . kind , 'string' ) ;
25232539 x . assert ( p . elems [ 0 ] . value [ 0 ] . value , 'a' ) ;
25242540 x . assert ( p . elems [ 0 ] . value [ 1 ] . kind , 'string' ) ;
2525- x . assert ( p . elems [ 0 ] . value [ 1 ] . value , 'br2 ' ) ;
2541+ x . assert ( p . elems [ 0 ] . value [ 1 ] . displayInCode ( ) , '"b"+"r"+2 ' ) ;
25262542
25272543 p = inferredValues ( '"a".|c|' , { 'c' : 'r' } ) ;
25282544 x . assert ( p . errors , [ ] ) ;
0 commit comments