magento / magento-coding-standard

Magento Coding Standard
Open Software License 3.0
349 stars 153 forks source link

Magento2.Annotation.MethodArguments.MethodArguments can't deal with phpstan-style array argument types #276

Open hostep opened 3 years ago

hostep commented 3 years ago

Preconditions

This started happening after upgrading the coding-standard library from version 6 to version 10 on a custom module of mine.

I suspect that this library currently can't deal wit phpstan-style array argument types (and psalm has the same concept btw)

Steps to reproduce

  1. Have a class like this:
    
    <?php

declare(strict_types=1);

namespace Whatever;

use Symfony\Component\Console\Output\OutputInterface;

class SomeClass { /**

Expected result

  1. No warnings

Actual result

  1. Warnings:
    --------------------------------------------------------------------------------------------------------------------------------------
    FOUND 0 ERRORS AND 2 WARNINGS AFFECTING 1 LINE
    --------------------------------------------------------------------------------------------------------------------------------------
    14 | WARNING | @param is not found for one or more params in method annotation
    |         | (Magento2.Annotation.MethodArguments.MethodArguments)
    14 | WARNING | $categoryData parameter is missing in method annotation (Magento2.Annotation.MethodArguments.MethodArguments)
    --------------------------------------------------------------------------------------------------------------------------------------
m2-assistant[bot] commented 3 years ago

Hi @hostep. Thank you for your report. To help us process this issue please make sure that you provided sufficient information.

Please, add a comment to assign the issue: @magento I am working on this


shochdoerfer commented 2 years ago

Just ran into the same issue. Would love to see this fixed. For now, I disabled the magento-coding-standard checks in our CI pipeline in favor of phpstan.

mansourwalid commented 2 years ago

Although this is not how it should be, and this issue should be addressed correctly, you might skip the error detection by removing any space within the parameter's type section:

    /**
     * @param array<array<string,mixed>> $categoryData
     */