Detect a new Failure\Precondition.
Detect a new Failure\Precondition.

If there is not enough data to invoke the callable, the error was
postpone to the checkClause() of a @requires. But in the following
situation, this will not be detected:

    /**
     * @requires i: 'foo';
     * @behavior a {
     *     @requires j: 'bar';
     * }
     * @behavior b {
     *     @requires j: 'baz';
     * }
     */
    public function f ( $i, $j ) { … }

If $i = 'foo' and $j unset. Because the first @behavior will failed
(silently, which is normal), and the second @behavior will also failed
(and also silently, which is still normal). So the callable will be
invoked with a missing argument.

This patch fixes that!

Grummfy/Central,Grummfy/Central,Metalaka/Central,vcgato29/Central,vcgato29/Central,Metalaka/Central