@@ -44,30 +44,65 @@ public function testMethodChained(): void
4444 assertType ('$this(StaticWithThisChained\Foo) ' , $ this ->getThis ());
4545 assertType ('static(StaticWithThisChained\Foo) ' , $ this ->newStatic ());
4646 assertType ('static(StaticWithThisChained\Foo) ' , static ::newStaticStatic ());
47- assertType ('StaticWithThisChained\Foo ' , self ::newStaticStatic ());
47+ assertType ('static( StaticWithThisChained\Foo) ' , self ::newStaticStatic ());
4848 assertType ('StaticWithThisChained\Foo ' , Foo::newStaticStatic ());
4949
5050 assertType ('$this(StaticWithThisChained\Foo) ' , $ this ->getThis ()->getThis ());
5151 assertType ('static(StaticWithThisChained\Foo) ' , $ this ->newStatic ()->getThis ());
5252 assertType ('static(StaticWithThisChained\Foo) ' , static ::newStaticStatic ()->getThis ());
53- assertType ('StaticWithThisChained\Foo ' , self ::newStaticStatic ()->getThis ());
53+ assertType ('static( StaticWithThisChained\Foo) ' , self ::newStaticStatic ()->getThis ());
5454 assertType ('StaticWithThisChained\Foo ' , Foo::newStaticStatic ()->getThis ());
5555 }
5656
5757 public function testPropertyChained (): void
5858 {
59- /*
6059 assertType ('$this(StaticWithThisChained\Foo) ' , $ this ->propThis );
6160 assertType ('static(StaticWithThisChained\Foo) ' , $ this ->propStatic );
6261 assertType ('static(StaticWithThisChained\Foo) ' , static ::$ propStaticStatic );
63- assertType('StaticWithThisChained\Foo', self::$propStaticStatic);
62+ assertType ('static( StaticWithThisChained\Foo) ' , self ::$ propStaticStatic );
6463 assertType ('StaticWithThisChained\Foo ' , Foo::$ propStaticStatic );
6564
6665 assertType ('$this(StaticWithThisChained\Foo) ' , $ this ->propThis ->propThis );
6766 assertType ('static(StaticWithThisChained\Foo) ' , $ this ->propStatic ->propThis );
6867 assertType ('static(StaticWithThisChained\Foo) ' , static ::$ propStaticStatic ->propThis );
69- assertType('StaticWithThisChained\Foo', self::$propStaticStatic->propThis);
68+ assertType ('static( StaticWithThisChained\Foo) ' , self ::$ propStaticStatic ->propThis );
7069 assertType ('StaticWithThisChained\Foo ' , Foo::$ propStaticStatic ->propThis );
71- */
70+ }
71+ }
72+
73+ class Bar extends Foo
74+ {
75+ public function testMethodChained (): void
76+ {
77+ assertType ('$this(StaticWithThisChained\Bar) ' , $ this ->getThis ());
78+ assertType ('static(StaticWithThisChained\Bar) ' , $ this ->newStatic ());
79+ assertType ('static(StaticWithThisChained\Bar) ' , static ::newStaticStatic ());
80+ assertType ('static(StaticWithThisChained\Bar) ' , self ::newStaticStatic ());
81+ assertType ('StaticWithThisChained\Foo ' , Foo::newStaticStatic ());
82+ assertType ('StaticWithThisChained\Bar ' , Bar::newStaticStatic ());
83+
84+ assertType ('$this(StaticWithThisChained\Bar) ' , $ this ->getThis ()->getThis ());
85+ assertType ('static(StaticWithThisChained\Bar) ' , $ this ->newStatic ()->getThis ());
86+ assertType ('static(StaticWithThisChained\Bar) ' , static ::newStaticStatic ()->getThis ());
87+ assertType ('static(StaticWithThisChained\Bar) ' , self ::newStaticStatic ()->getThis ());
88+ assertType ('StaticWithThisChained\Foo ' , Foo::newStaticStatic ()->getThis ());
89+ assertType ('StaticWithThisChained\Bar ' , Bar::newStaticStatic ()->getThis ());
90+ }
91+
92+ public function testPropertyChained (): void
93+ {
94+ assertType ('$this(StaticWithThisChained\Bar) ' , $ this ->propThis );
95+ assertType ('static(StaticWithThisChained\Bar) ' , $ this ->propStatic );
96+ assertType ('static(StaticWithThisChained\Bar) ' , static ::$ propStaticStatic );
97+ assertType ('static(StaticWithThisChained\Bar) ' , self ::$ propStaticStatic );
98+ assertType ('StaticWithThisChained\Foo ' , Foo::$ propStaticStatic );
99+ assertType ('StaticWithThisChained\Bar ' , Bar::$ propStaticStatic );
100+
101+ assertType ('$this(StaticWithThisChained\Bar) ' , $ this ->propThis ->propThis );
102+ assertType ('static(StaticWithThisChained\Bar) ' , $ this ->propStatic ->propThis );
103+ assertType ('static(StaticWithThisChained\Bar) ' , static ::$ propStaticStatic ->propThis );
104+ assertType ('static(StaticWithThisChained\Bar) ' , self ::$ propStaticStatic ->propThis );
105+ assertType ('StaticWithThisChained\Foo ' , Foo::$ propStaticStatic ->propThis );
106+ assertType ('StaticWithThisChained\Bar ' , Bar::$ propStaticStatic ->propThis );
72107 }
73108}
0 commit comments