Skip to content

Commit 9172bea

Browse files
committed
Fix some type issues and test all specs
1 parent c01de1f commit 9172bea

18 files changed

+77
-38
lines changed

grammar/handlebars.y

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,8 @@ helperName:
314314
| STRING { $$ = new StringLiteral($1, $1, locInfo()); }
315315
| NUMBER { $$ = new NumberLiteral($1 + 0, $1 + 0, locInfo()); }
316316
| BOOLEAN { $$ = new BooleanLiteral($1 === 'true', $1 === 'true', locInfo()); }
317-
| UNDEFINED { $$ = new UndefinedLiteral(locInfo()); }
318-
| NULL { $$ = new NullLiteral(locInfo()); }
317+
| UNDEFINED { $$ = new UndefinedLiteral(null, null, locInfo()); }
318+
| NULL { $$ = new NullLiteral(null, null, locInfo()); }
319319
;
320320

321321
dataName:

src/Ast/ArrayLiteral.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace DevTheorem\HandlebarsParser\Ast;
44

5-
class ArrayLiteral extends Literal
5+
class ArrayLiteral extends Expression
66
{
77
/**
88
* @param Expression[] $items

src/Ast/BlockStatement.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class BlockStatement extends Statement
99
*/
1010
public function __construct(
1111
string $type,
12-
public PathExpression $path,
12+
public PathExpression|Literal $path,
1313
public array $params,
1414
public ?Hash $hash,
1515
public ?Program $program,

src/Ast/BooleanLiteral.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ class BooleanLiteral extends Literal
66
{
77
public function __construct(
88
public bool $value,
9-
public bool $original,
9+
bool $original,
1010
SourceLocation $loc,
1111
) {
12-
parent::__construct('BooleanLiteral', $loc);
12+
parent::__construct($original, 'BooleanLiteral', $loc);
1313
}
1414
}

src/Ast/CloseBlock.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
readonly class CloseBlock
66
{
77
public function __construct(
8-
public PathExpression $path,
8+
public PathExpression|Literal $path,
99
public StripFlags $strip,
1010
) {}
1111
}

src/Ast/HashLiteral.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace DevTheorem\HandlebarsParser\Ast;
44

5-
class HashLiteral extends Literal
5+
class HashLiteral extends Expression
66
{
77
/**
88
* @param HashPair[] $pairs

src/Ast/Literal.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,13 @@
22

33
namespace DevTheorem\HandlebarsParser\Ast;
44

5-
abstract class Literal extends Expression {}
5+
abstract class Literal extends Expression
6+
{
7+
public function __construct(
8+
public string|int|float|bool|null $original,
9+
string $type,
10+
SourceLocation $loc,
11+
) {
12+
parent::__construct($type, $loc);
13+
}
14+
}

src/Ast/NullLiteral.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44

55
class NullLiteral extends Literal
66
{
7-
public function __construct(SourceLocation $loc)
8-
{
9-
parent::__construct('NullLiteral', $loc);
7+
public function __construct(
8+
public null $value,
9+
null $original,
10+
SourceLocation $loc,
11+
) {
12+
parent::__construct($original, 'NullLiteral', $loc);
1013
}
1114
}

src/Ast/NumberLiteral.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ class NumberLiteral extends Literal
66
{
77
public function __construct(
88
public int|float $value,
9-
public int|float $original,
9+
int|float $original,
1010
SourceLocation $loc,
1111
) {
12-
parent::__construct('NumberLiteral', $loc);
12+
parent::__construct($original, 'NumberLiteral', $loc);
1313
}
1414
}

src/Ast/OpenBlock.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*/
1111
public function __construct(
1212
public string $open,
13-
PathExpression $path,
13+
PathExpression|Literal $path,
1414
array $params,
1515
?Hash $hash,
1616
public array $blockParams,

0 commit comments

Comments
 (0)