Skip to content

Short list vs short array #12

Open
@jrfnl

Description

@jrfnl

Repost from squizlabs/PHP_CodeSniffer#1984:

PHP 7.1 introduced the "short list syntax", i.e. using the short array syntax instead of calling list().
Ref: http://php.net/manual/en/migration71.new-features.php#migration71.new-features.symmetric-array-destructuring

Now I can imagine that in some situations it would be useful to be able to make the distinction whether something is used as a short list vs a short array.

There are two ways this can be done:

  1. Introduce T_OPEN_SHORT_LIST/T_CLOSE_SHORT_LIST tokens and let the Tokenizer handle it.
    The downside of this first solution is that in a lot of cases - especially when sniffing for code style -, I imagine that short list/array should be treated the same, so those sniff would then need to add two additional tokens to sniff for.
  2. Introduce a utility function which can make the distinction and can be called by select sniffs if/when needed.

For the PHPCompatibility standard, I have already created the utility function (solution 2), including extensive unit tests for it.
See: PHPCompatibility/PHPCompatibility#635

If there would be interest in having such a utility function in PHPCS itself, I'd be happy to pull it here.


See the original issue for an extensive discussion on the topic.

My current line of thinking is to add a nested_brackets index to the token array. This would allow for sniffs to figure out if they are dealing with a (nested) short list or a short array much more easily.

I'm tentatively earmarking this ticket for 4.0, but it may well be moved to a later release.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions