Нет, только список возможных типов данных через "|".
PHPDoc не имеет никакой логики внутри, оно просто подсвечивает несостыковки между запрашиваемым и получаемым, и точно не сможет считать итерации))
Nik Gubin: Но ведь тут достаточно явная конструкция, этот генератор на каждой итерации foreach всегда будет возвращать только объекты SomeClass, без вариантов, и чтобы IDE подсвечивала их методы и свойства, ей нужно только влепить где-либо подсказку, странно, что это не поддерживается из коробки...
Владимир Голубев: так, стоп. Метод возвращает ТОЛЬКО SomeClass или на каждую итерацию "SomeClass{i++}"? Если первый вариант, то почему бы не сделать @return SomeClass, а если второй, то как вы предлагаете идешке ванговать ваши итерации? Пять их, или сто, и где хранить, если это просто комментарий, разобранный IDE для подсветки и подсказок.
Nik Gubin: Да, метод возвращает ТОЛЬКО объекты класса SomeClass, но @return SomeClass не работает, поскольку метод не ВОЗВРАЩАЕТ объект, он yield-ит их(не знаю как это перевести), и воспринимается как массив, соответственно, вопрос был про то, что в методе foreach(generator() as $obj)
ide понимала, что этот генератор возвращает объекты SomeClass.
Собственно, Boris Korobkov дал рабочий вариант ( @return Generator|SomeClass[]), вариант с @return SomeClass[] тоже кстати работает.
Владимир Голубев: а я почему то думал, что свой класс на каждую итерацию, т.е. FooClass для первой, BarClass для второй и т.д) Хорошо, что ответ найден. Но могу включить режим зануды и скинуть ссылочку на доку)) Пригодится всё-равно.
Nik Gubin: Я тоже могу включить режим зануды, и рассказать что доку я посетил в первую очередь )))
Но yield я там не нашёл, а в описании return нету упоминания про возможность указания скобок)