Jak zastąpić funkcję cechy i wywołać ją z funkcji nadpisanej?

Scenariusz:

trait A {
    function calc($v) {
        return $v+1;
    }
}

class MyClass {
    use A;

    function calc($v) {
        $v++;
        return A::calc($v);
    }
}

print (new MyClass())->calc(2); // should print 4

Ten kod nie działa i nie mogę znaleźć sposobu na wywołanie funkcji cechy, tak jakby była dziedziczona. Próbowałem dzwonićself::calc($v), static::calc($v), parent::calc($v), A::calc($v) i następujące:

trait A {
    function calc($v) {
        return $v+1;
    }
}

class MyClass {
    use A {
        calc as traitcalc;
    }

    function calc($v) {
        $v++;
        return traitcalc($v);
    }
}

Nic nie działa.

Czy jest jakiś sposób, aby to zadziałało lub czy muszę całkowicie przesłonić funkcję cechy, która jest znacznie bardziej złożona niż ta :)

questionAnswers(4)

yourAnswerToTheQuestion