Annotation of embedaddon/php/tests/lang/bug24658.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #24658 (combo of typehint / reference causes crash)
        !             3: --FILE--
        !             4: <?php
        !             5: class foo {}
        !             6: function no_typehint($a) {
        !             7:        var_dump($a);
        !             8: }
        !             9: function typehint(foo $a) {
        !            10:        var_dump($a);
        !            11: }
        !            12: function no_typehint_ref(&$a) {
        !            13:        var_dump($a);
        !            14: }
        !            15: function typehint_ref(foo &$a) {
        !            16:        var_dump($a);
        !            17: }
        !            18: $v = new foo();
        !            19: $a = array(new foo(), 1, 2);
        !            20: no_typehint($v);
        !            21: typehint($v);
        !            22: no_typehint_ref($v);
        !            23: typehint_ref($v);
        !            24: echo "===no_typehint===\n";
        !            25: array_walk($a, 'no_typehint');
        !            26: echo "===no_typehint_ref===\n";
        !            27: array_walk($a, 'no_typehint_ref');
        !            28: echo "===typehint===\n";
        !            29: array_walk($a, 'typehint');
        !            30: echo "===typehint_ref===\n";
        !            31: array_walk($a, 'typehint_ref');
        !            32: ?>
        !            33: --EXPECTF--
        !            34: object(foo)#%d (0) {
        !            35: }
        !            36: object(foo)#%d (0) {
        !            37: }
        !            38: object(foo)#%d (0) {
        !            39: }
        !            40: object(foo)#%d (0) {
        !            41: }
        !            42: ===no_typehint===
        !            43: object(foo)#%d (0) {
        !            44: }
        !            45: int(1)
        !            46: int(2)
        !            47: ===no_typehint_ref===
        !            48: object(foo)#%d (0) {
        !            49: }
        !            50: int(1)
        !            51: int(2)
        !            52: ===typehint===
        !            53: object(foo)#%d (0) {
        !            54: }
        !            55: 
        !            56: Catchable fatal error: Argument 1 passed to typehint() must be an instance of foo, integer given in %s on line %d

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>