Having two classes:
src/Abc/MyClass.php:
<?php
namespace OC\Abc;
class MyClass {
public function abc() {
echo '\OC\Abcd\MyClass';
}
}
src/Abcd/MyClass.php:
<?php
namespace OC\Abcd;
class MyClass {
}
The inspection ::class can be used is shown:

Clicking the repair button now results in:
<?php
namespace OC\Abc;
use OC\Abcd\MyClass;
class MyClass {
public function abc() {
echo MyClass::class;
}
}
This is obviously wrong, because MyClass is already defined. It seems that it does not detect collisions with the class it is currently repairing.
The code needs to be either the full name:
<?php
namespace OC\Abc;
class MyClass {
public function abc() {
echo \OC\Abcd\MyClass::class;
}
}
or aliased:
<?php
namespace OC\Abc;
use OC\Abcd\MyClass as AbcdMyClass;
class MyClass {
public function abc() {
echo AbcdMyClass::class;
}
}
Thank you for reporting @MorrisJobke, we'll follow the Possible solution no. 1 strategy here.
Fixed
Most helpful comment
Fixed