Skip to content

Commit d8ff45c

Browse files
committed
Test anonymous class in trait must be declared only once
1 parent 414f71a commit d8ff45c

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Zend/tests/anon/017.phpt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--TEST--
2+
Anonymous class in trait must be declared only once
3+
--FILE--
4+
<?php
5+
6+
trait TraitWithAnonymousClass
7+
{
8+
public function foo(): object
9+
{
10+
return new class() {};
11+
}
12+
}
13+
14+
$c = count(get_declared_classes());
15+
16+
if (time() > 0) {
17+
class A { use TraitWithAnonymousClass; }
18+
var_dump(count(get_declared_classes()) - $c);
19+
20+
$o = new A();
21+
var_dump(count(get_declared_classes()) - $c);
22+
23+
$o->foo();
24+
var_dump(count(get_declared_classes()) - $c);
25+
}
26+
27+
eval('class B { use TraitWithAnonymousClass; }');
28+
var_dump(count(get_declared_classes()) - $c);
29+
30+
$o = new B();
31+
var_dump(count(get_declared_classes()) - $c);
32+
33+
$o->foo();
34+
var_dump(count(get_declared_classes()) - $c);
35+
36+
?>
37+
--EXPECT--
38+
int(1)
39+
int(1)
40+
int(1)
41+
int(2)
42+
int(2)
43+
int(2)

0 commit comments

Comments
 (0)