hhvm — Hack (PHP) ReflectionClass завершается ошибкой с Map как свойство метода по умолчанию

Если подпись метода имеет коллекцию Map в качестве значения параметра по умолчанию, выдается ошибка при использовании ReflectionClass для проверки этого метода.

Cannot use collection initialization in non-collection class

Класс выглядит так:

<?hh //strict
namespace Acme;

class Foo
{
protected Map<string, string> $options;

public function __construct(Map<string, string> $options = Map{})
{
$this->options = $options;
}

}

И ошибка отражения происходит, когда

$reflection = new ReflectionClass('Acme\Foo');

$reflection->getConstructor()->getParameters();

Класс создается правильно при его использовании. Я могу создать ошибку только с помощью Reflection.

Вопрос

Есть ли что-то, что я делаю неправильно, или концепция, которую я упускаю, чтобы сделать эту работу, как ожидалось? Я бы ожидал getProperties вернуть свойства для метода, как это происходит с любым другим значением / типом.

1

Решение

Это похоже на ошибку. пожалуйста зарегистрируйте его на нашем трекере GitHub.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]