11package fr .adrienbrault .idea .symfony2plugin .navigation .controller ;
22
33import com .intellij .psi .PsiElement ;
4- import com .intellij .psi .PsiRecursiveElementVisitor ;
4+ import com .jetbrains .php .codeInsight .controlFlow .PhpControlFlowUtil ;
5+ import com .jetbrains .php .codeInsight .controlFlow .PhpInstructionProcessor ;
6+ import com .jetbrains .php .codeInsight .controlFlow .instructions .PhpCallInstruction ;
57import com .jetbrains .php .lang .psi .elements .MethodReference ;
68import com .jetbrains .php .lang .psi .elements .PhpClass ;
79import fr .adrienbrault .idea .symfony2plugin .Symfony2Icons ;
1113import fr .adrienbrault .idea .symfony2plugin .form .util .FormUtil ;
1214import fr .adrienbrault .idea .symfony2plugin .util .MethodMatcher ;
1315import org .apache .commons .lang .StringUtils ;
14- import org .jetbrains .annotations .NotNull ;
1516
1617import java .util .ArrayList ;
1718import java .util .Collection ;
@@ -27,14 +28,13 @@ public void collectGotoRelatedItems(ControllerActionGotoRelatedCollectorParamete
2728
2829 Collection <MethodReference > methodReferences = new ArrayList <>();
2930
30- parameter .getMethod ().acceptChildren ( new PsiRecursiveElementVisitor () {
31+ PhpControlFlowUtil . processFlow ( parameter .getMethod ().getControlFlow (), new PhpInstructionProcessor () {
3132 @ Override
32- public void visitElement ( @ NotNull PsiElement element ) {
33- if (element instanceof MethodReference ) {
34- methodReferences .add (( MethodReference ) element );
33+ public boolean processPhpCallInstruction ( PhpCallInstruction instruction ) {
34+ if (instruction . getFunctionReference () instanceof MethodReference methodReference ) {
35+ methodReferences .add (methodReference );
3536 }
36-
37- super .visitElement (element );
37+ return super .processPhpCallInstruction (instruction );
3838 }
3939 });
4040
0 commit comments