Skip to content

A function or method containing no statements or comments body SHOULD be abbreviated as {} #2400

Open
@jdeniau

Description

@jdeniau

@prettier/plugin-php v0.22.2
Playground link

Input:

<?php

class Foo {
  public function __construct() {}
}

class Bar {
  public function __construct(
    private readonly Foo $foo
  ) {}
}

Output:

<?php

class Foo
{
    public function __construct()
    {
    }
}

class Bar
{
    public function __construct(private readonly Foo $foo)
    {
    }
}

expected behaviour

There should not a blank line between { and } According to PER CS 4.4 Methods and Functions:

If a function or method contains no statements or comments (such as an empty no-op implementation or when using constructor property promotion), then the body SHOULD be abbreviated as {} and placed on the same line as the previous symbol, separated by a space. For example:

class Point
{
    public function __construct(private int $x, private int $y) {}
    
    // ...
}

class Point
{
    public function __construct(
      public readonly int $x,
      public readonly int $y,
    ) {}
}

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions