Skip to content

PEAR.WhiteSpace.ObjectOperatorIndent can't choose expected indentation #3718

Closed
PHPCSStandards/PHP_CodeSniffer
#1158

Description

@lucassabreu

Describe the bug
The rule PEAR.WhiteSpace.ObjectOperatorIndent always shows an error for indentation space for object operator when on a array that has a embedded array before it.

If i move the key brand from the code sample to the end of the array the error is not reported anymore.

Code sample

<?php

namespace Example;

class Bug
{
    public function toJson(array $list): array
    {
        return [
            'brand' => [
                'id' => $item->product()->brand()->id(),
                'title' => $item->product()->brand()->name(),
            ],
            'charges' => $item->charges()
                ->toArray(), // Object operator not indented correctly; expected 20 spaces but found 16
        ];
    }
}

Custom ruleset

<?xml version="1.0"?>
<ruleset name="My Custom Standard">
    <rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
</ruleset>

To reproduce
Steps to reproduce the behavior:

  1. Create a file called test.php with the code sample above...
  2. Run phpcs test.php ...
  3. See error message displayed

FILE: src/Example/Bug.php
----------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 1 LINE
----------------------------------------------------------------------
 15 | ERROR | [x] Object operator not indented correctly; expected 20
    |       |     spaces but found 16
 15 | ERROR | [x] Object operator not indented correctly; expected 20
    |       |     spaces but found 16
----------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------

Time: 267ms; Memory: 8MB

Expected behavior
PHPCS and PHPCPF should be able to "select" the right indentation when on a array, even if a "embedded array" before it.

Versions (please complete the following information):

  • OS: Linux
  • PHP: 7.4
  • PHPCS: 3.5.0, 3.7.1
  • Standard: see "Custom ruleset"

Additional context
NONE

Activity

  1. Daimona commented on Jun 27, 2025

    @Daimona
    Contributor

    Re-opened this in the new repo as PHPCSStandards/PHP_CodeSniffer#1154.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions