Skip to content

Commit a4fab0d

Browse files
committed
Add redundant type tests
1 parent 8bb1304 commit a4fab0d

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
Duplicate class alias type
3+
--FILE--
4+
<?php
5+
6+
use A as B;
7+
function foo(): A&B {}
8+
9+
?>
10+
--EXPECTF--
11+
Fatal error: Duplicate type A is redundant in %s on line %d
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Duplicate class alias type at runtime
3+
--FILE--
4+
<?php
5+
6+
class A {}
7+
8+
class_alias('A', 'B');
9+
function foo(): A&B {}
10+
11+
?>
12+
===DONE===
13+
--EXPECT--
14+
===DONE===
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
Duplicate class type
3+
--FILE--
4+
<?php
5+
6+
function test(): Foo&A&FOO {
7+
}
8+
9+
?>
10+
--EXPECTF--
11+
Fatal error: Duplicate type FOO is redundant in %s on line %d
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
--TEST--
2+
Intersection with child class
3+
--FILE--
4+
<?php
5+
6+
class A {}
7+
class B extends A {}
8+
9+
function test(): A&B {
10+
}
11+
12+
?>
13+
===DONE===
14+
--EXPECT--
15+
===DONE===

0 commit comments

Comments
 (0)