Invalid trait insteadof list
Ouverte
Personne n'a encore pris cette issue.
Bug
Category: Engine
Status: Verified
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
trait A {
public function test() {
return 'A';
}
}
trait B {
public function test() {
return 'B';
}
}
class C {
use A, B {
A::test insteadof B;
B::test insteadof A;
}
}
$c = new C();
var_dump($c->test());
Resulted in this output:
Fatal error: Uncaught Error: Call to undefined method C::test()
But I expected this output instead:
Some trait-resolution-time error
PHP Version
PHP-5.4+
Operating System
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter le reproducteur PHP minimal de l’issue sur un build PHP pris en charge et comparez le résultat de méthode indéfinie avec l’erreur attendue au moment de la résolution du trait. Suivez le traitement par le bloc use A, B des deux déclarations insteadof opposées ; le travail est terminé lorsque la liste invalide est rejetée avec une erreur de résolution du trait au lieu de laisser C::test() non définie.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100