diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/actions/UsedNamesCollector.java b/php/php.editor/src/org/netbeans/modules/php/editor/actions/UsedNamesCollector.java index 86b1f411960c..b0a609cb6e7b 100644 --- a/php/php.editor/src/org/netbeans/modules/php/editor/actions/UsedNamesCollector.java +++ b/php/php.editor/src/org/netbeans/modules/php/editor/actions/UsedNamesCollector.java @@ -164,7 +164,10 @@ public void visit(PHPDocTypeNode node) { } private boolean isValidTypeName(final String typeName) { - return !SPECIAL_NAMES.contains(typeName) && !Type.isPrimitive(typeName); + return !SPECIAL_NAMES.contains(typeName) + && !Type.isPrimitive(typeName) + && !typeName.contains("<") // NOI18N e.g. array + && !typeName.contains("{"); // NOI18N e.g. array{'foo': int, "bar": string} } private boolean isValidAliasTypeName(final String typeName) { diff --git a/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php b/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php new file mode 100644 index 000000000000..e353837309d2 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php @@ -0,0 +1,43 @@ + $param + */ + public function test1(array $param): Foo { + return $param['foo']; + } + + /** + * @param array{'foo': Foo, "bar": string} $param + */ + public function test2(array $param): Foo { + return $param['foo']; + } +} diff --git a/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php.importData b/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php.importData new file mode 100644 index 000000000000..7bb493904d72 --- /dev/null +++ b/php/php.editor/test/unit/data/testfiles/actions/testGH4614/testGH4614_01.php.importData @@ -0,0 +1,12 @@ +Caret position: 980 +Should show uses panel: true +Defaults: + \Test1\Foo + +Names: + Foo + +Variants: + \Test1\Foo + Don't import. + diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/actions/ImportDataCreatorTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/actions/ImportDataCreatorTest.java index 48b3b3c245cf..c923564bea47 100644 --- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/actions/ImportDataCreatorTest.java +++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/actions/ImportDataCreatorTest.java @@ -114,6 +114,10 @@ public void testImportDataEnums_02() throws Exception { performTest("class Test^Class3 {"); } + public void testGH4614_01() throws Exception { + performTest("public function test1(array $param): F^oo {"); + } + private void performTest(String caretLine) throws Exception { performTest(caretLine, null); }