Skip to content

Unrecognized "extends" and indentation on anonymous classes #910

@brzuchal

Description

@brzuchal

There are some errors while using anonymous classes in PHP7, for eg.:

<?php
namespace Brzuchal;

use ArrayObject;

class Base
{
    protected $anonymous;

    public function __construct()
    {
        $this->anonymous = new class extends ArrayObject
        {
            public function __construct()
            {
                parent::__construct(['a' => 1, 'b' => 2]);
            }
        };
    }
}

When running phpspec --standard=PSR2 it outputs some ERROR, like:

----------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
----------------------------------------------------------------------
 12 | ERROR | Class name "extends" is not in camel caps format
 18 | ERROR | Closing class brace must be on a line by itself
----------------------------------------------------------------------

And when add parenthesis after class, like new class() extends ArrayObject there is different ERROR on method indentation, like:

----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------
 14 | ERROR | [x] Line indented incorrectly; expected 8 spaces, found
    |       |     12
----------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------

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