|
207 | 207 | new \Phplrt\Parser\Grammar\Concatenation([133]), |
208 | 208 | new \Phplrt\Parser\Grammar\Optional(54), |
209 | 209 | new \Phplrt\Parser\Grammar\Alternation([127, 128]), |
210 | | - new \Phplrt\Parser\Grammar\Alternation([3, 23, 21]), |
| 210 | + new \Phplrt\Parser\Grammar\Alternation([18, 19, 3, 23, 21]), |
211 | 211 | new \Phplrt\Parser\Grammar\Lexeme('T_QMARK', true), |
212 | 212 | new \Phplrt\Parser\Grammar\Concatenation([59]), |
213 | 213 | new \Phplrt\Parser\Grammar\Optional(132), |
|
558 | 558 |
|
559 | 559 | foreach ($children as $field) { |
560 | 560 | if ($field instanceof Node\Stmt\Shape\ExplicitFieldNode) { |
561 | | - $key = $field->getKey(); |
| 561 | + $key = $field->getHashString(); |
562 | 562 |
|
563 | 563 | if (\in_array($key, $explicit, true)) { |
564 | 564 | throw SemanticException::fromShapeFieldDuplication($key, $field->offset); |
|
632 | 632 | => new Node\Stmt\Shape\NumericFieldNode($name, $value, $optional), |
633 | 633 | $name instanceof Node\Literal\StringLiteralNode |
634 | 634 | => new Node\Stmt\Shape\StringNamedFieldNode($name, $value, $optional), |
| 635 | + $name instanceof Node\Stmt\ClassConstMaskNode |
| 636 | + => new Node\Stmt\Shape\ClassConstMaskFieldNode($name, $value, $optional), |
| 637 | + $name instanceof Node\Stmt\ConstMaskNode |
| 638 | + => new Node\Stmt\Shape\ConstMaskFieldNode($name, $value, $optional), |
635 | 639 | default => new Node\Stmt\Shape\NamedFieldNode($name, $value, $optional), |
636 | 640 | }; |
637 | 641 | }, |
|
0 commit comments