Skip to content
This repository

Typehint callable not supported #582

Closed
lstrojny opened this Issue · 4 comments

5 participants

Lars Strojny Paul Tarjan Drew Paroski Evert Pot Sean Cannella
Lars Strojny

PHP 5.4 introduces the callable typehint to allow closures, string $function and array($obj, 'method'). See http://php.net/manual/de/language.types.callable.php for details. HipHop analyzes callable as UnknownClass.

Drew Paroski
Collaborator

HipHop does not currently support all PHP 5.4 features. We plan to add support for the "callable" typehint some time in the coming months.

Paul Tarjan
Collaborator
ptarjan commented

It's there now: cc37fe6

Paul Tarjan ptarjan closed this
Evert Pot

This is still failing for me:

<?php

function callMe(callable $b) {

    $b();

}

callMe(function() {

    echo "hello\n";

});

Throws:

HipHop Fatal error: Argument 1 passed to callMe() must be an instance of callable, Closure$callMe$47daeefeedcd4b135f362b25e98454cc$ given in /Users/evert/code/sabre/event/tests/foo3.php on line 7

Version:

$ hhvm --version
HipHop VM v2.3.0-dev (rel)
Compiler: heads/master-0-gf6413a9d4ca5a0646290bf180702e967ff1daf61
Repo schema: 536d56f98b940f0920eafa10249dca34d2e855de
Sean Cannella
Collaborator

@paroski, this seems to work only when EnableHipHopSyntax=1. Any idea why?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.