File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
src/test/php/lang/ast/unittest/emit Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -361,6 +361,39 @@ public function run() {
361
361
Assert::equals ('ok. ' , $ f ('test. ' ));
362
362
}
363
363
364
+ #[Test]
365
+ public function partial_function_application_invoke_interceptor () {
366
+ $ f = $ this ->run ('use lang\ast\unittest\emit\Handle; class %T {
367
+ public function run() {
368
+ $add= new class() {
369
+ public function __invoke(int $a, int $b) {
370
+ return $a + $b;
371
+ }
372
+ };
373
+ return $add(1, ?);
374
+ }
375
+ } ' );
376
+ Assert::equals (3 , $ f (2 ));
377
+ }
378
+
379
+ #[Test]
380
+ public function partial_function_application_call_interceptor () {
381
+ $ f = $ this ->run ('use lang\ast\unittest\emit\Handle; class %T {
382
+ public function run() {
383
+ $calc= new class() {
384
+ public function __call($name, $args) {
385
+ return match ($name) {
386
+ "add" => array_sum($args),
387
+ // TBI
388
+ };
389
+ }
390
+ };
391
+ return $calc->add(1, ...);
392
+ }
393
+ } ' );
394
+ Assert::equals (6 , $ f (2 , 3 ));
395
+ }
396
+
364
397
#[Test, Runtime(php: '>=8.0.0 ' )]
365
398
public function partial_function_application_named_arguments_out_of_order () {
366
399
$ f = $ this ->run ('class %T {
You can’t perform that action at this time.
0 commit comments