Annotation of embedaddon/php/Zend/tests/bug60573.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #60573 (type hinting with "self" keyword causes weird errors)
! 3: --FILE--
! 4: <?php
! 5: class Foo1 {
! 6:
! 7: public function setSelf(self $s) { }
! 8:
! 9: }
! 10:
! 11: class Bar1 extends Foo1 {
! 12:
! 13: public function setSelf(parent $s) { }
! 14:
! 15: }
! 16:
! 17: class Foo2 {
! 18:
! 19: public function setSelf(Foo2 $s) { }
! 20:
! 21: }
! 22:
! 23: class Bar2 extends Foo2 {
! 24:
! 25: public function setSelf(parent $s) { }
! 26:
! 27: }
! 28:
! 29: class Base {
! 30: }
! 31:
! 32: class Foo3 extends Base{
! 33:
! 34: public function setSelf(parent $s) { }
! 35:
! 36: }
! 37:
! 38: class Bar3 extends Foo3 {
! 39:
! 40: public function setSelf(Base $s) { }
! 41:
! 42: }
! 43:
! 44: class Foo4 {
! 45:
! 46: public function setSelf(self $s) { }
! 47:
! 48: }
! 49:
! 50: class Bar4 extends Foo4 {
! 51:
! 52: public function setSelf(self $s) { }
! 53:
! 54: }
! 55:
! 56: class Foo5 extends Base {
! 57:
! 58: public function setSelf(parent $s) { }
! 59:
! 60: }
! 61:
! 62: class Bar5 extends Foo5 {
! 63:
! 64: public function setSelf(parent $s) { }
! 65:
! 66: }
! 67:
! 68: abstract class Foo6 extends Base {
! 69:
! 70: abstract public function setSelf(parent $s);
! 71:
! 72: }
! 73:
! 74: class Bar6 extends Foo6 {
! 75:
! 76: public function setSelf(Foo6 $s) { }
! 77:
! 78: }
! 79: --EXPECTF--
! 80: Strict Standards: Declaration of Bar4::setSelf() should be compatible with Foo4::setSelf(Foo4 $s) in %sbug60573.php on line %d
! 81:
! 82: Strict Standards: Declaration of Bar5::setSelf() should be compatible with Foo5::setSelf(Base $s) in %sbug60573.php on line %d
! 83:
! 84: Fatal error: Declaration of Bar6::setSelf() must be compatible with Foo6::setSelf(Base $s) in %sbug60573.php on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>