packages/deriver/tests/Unit/Deriver/Evaluator/Call/Plan/ExpressionKindTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Deriver\Evaluator\Call\Plan;
6
7use Deriver\Deriver\Evaluator\Call\Plan\ExpressionKind as Subject;
8use PHPUnit\Framework\Attributes\CoversNothing;
9use PHPUnit\Framework\TestCase;
10
11#[CoversNothing]
12final class ExpressionKindTest extends TestCase
13{
14    public function testIntrinsicExpressionsRetainRegisteredOperationNames(): void
15    {
16        $compiler = new \Deriver\Deriver\Evaluator\Call\Plan\PlanCompiler(new \Deriver\Deriver\Sources\SourceRef('s', 'evaluator:custom', 0, 1));
17        $register = $compiler->expression(new \Deriver\Deriver\Evaluator\Call\Plan\Expression(Subject::Intrinsic, 'vendor.custom-intrinsic'));
18        self::assertSame('intrinsic', $compiler->instructions[0][0]->operation);
19        self::assertSame('vendor.custom-intrinsic', $compiler->instructions[0][0]->name);
20        self::assertSame($register, $compiler->instructions[0][0]->result);
21    }
22}
23