Olexandr Ponomarenko created NETBEANS-6414:
----------------------------------------------

             Summary: Go to declaration does not work in some circumstances
                 Key: NETBEANS-6414
                 URL: https://issues.apache.org/jira/browse/NETBEANS-6414
             Project: NetBeans
          Issue Type: Bug
          Components: php - Navigation
    Affects Versions: 12.6
         Environment: ** 
Windows 10 64-bit
NetBeans 12.6 binaries
PHP 7.4.27
            Reporter: Olexandr Ponomarenko


The issue seems appears for class file that has "use" statement that has first 
part of namespace and imported class file the same (MyTest in the following 
examples). I will describe some strange cases which happen when inclusion of 
such class name is used. In the following examples resolved/unresolved means 
class file can or cannot be navigated to in NetBeans using Ctrl-B key binding. 
Content of included files does not matter.

 
1. With that contents TestHistory is not resolved:

{code:php}
<?php

namespace MyTest\Controller;

use MyTest\Entity\MyTest;
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

2. Adding comment in line with "use MyTest\Entity\MyTest;" makes TestStatus not 
resolved but others resolvable:

{code:php}
<?php

namespace MyTest\Controller;

use MyTest\Entity\MyTest;   // test
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

3. Using "declare(strict_types=1);" makes TestOne not resolved:

{code:php}
<?php

declare(strict_types=1);

namespace MyTest\Controller;

use MyTest\Entity\MyTest;
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

4. Placing strict types declaration right after opening php tag makes only 
TestTwo not resolved:

{code:php}
<?php declare(strict_types=1);

namespace MyTest\Controller;

use MyTest\Entity\MyTest;
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

5. Commenting strict types declaration with single comment makes any imported 
class after line with "use MyTest\Entity\MyTest;" not resolved:

{code:php}
<?php

//declare(strict_types=1);

namespace MyTest\Controller;

use MyTest\Entity\MyTest;
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

6. Adding multi line comment before "use MyTest\Entity\MyTest;" also makes any 
imported class not resolved (but behaved differently during previous checks 
yielding only to some classes resolved and some not):

{code:php}
<?php

/**
 * 
 */

declare(strict_types=1);

namespace MyTest\Controller;

use MyTest\Entity\MyTest;
use MyTest\Entity\TestHistory;
use MyTest\Entity\TestOne;
use MyTest\Entity\TestStatus;
use MyTest\Entity\TestTwo;

class TestController
{
}
{code}

There could be other combinations possible but I'm not gonna try every possible 
scenario as weird behavior is proven to be reproducible. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to