<?php
/**
* Some info about the class here
 *
 */
class MyClass
{
    /**
     * Some info about the function here.
     *
     *@return void
     */
    function myFunction() {}
}

/**
  *  Some info about the class here
  *
  */
class MyClass
{
    /**
      *Some info about the function here.
      *
      *  @return void
      */
    function myFunction() {}
}

/**
 * Some info about the class here
  *
*/
readonly class MyClass
{
    /**
     * Some info about the function here.
      *
    * @return void
     */
    function myFunction() {}
}

/** @var Database $mockedDatabase */
/** @var Container $mockedContainer */

function myFunction()
{
    echo 'hi';
    /**
        Comment here.
        */
}

/**
 * Creates a map of tokens => line numbers for each token.
 *
 * Long description with some points:
 *   - one
 *   - two
 *   - three
 *
 * @param array  &$tokens   The array of tokens to process.
 * @param object $tokenizer The tokenizer being used to
 *                          process this file.
 * @param string $eolChar   The EOL character to use for splitting strings.
 *
 * @return void
 */
function myFunction() {}

class MyClass2
{
    /**
       * Some info about the variable here.
     */
    var $x;
}

abstract class MyClass
{
    /**
* Property comment
   */
    readonly public string $prop;
}

/**
 * Some info about the enum here
  *
*/
enum Suits: string
{
    /**
      * Some info about the case here.
       */
    case HEARTS;
}

/** ************************************************************************
 * Example with no errors.
 **************************************************************************/
function example() {}

/**
  *  Some info about the class here.
    */
final class FinalClassWithFinalProp
{
    /**
   *Some info about the property here.
    *
     *  @var int
      */
    final $property = 10;
}

class AsymVisibility {
    /**
    * Stars should be aligned.
   */
    public(set) int $prop = 1;

    /**
      * Stars should be aligned.
       */
    protected(set) int $prop = 1;

    /**
     * Stars should be aligned.
     */
    private(set) int $prop = 1;
}

/**
  *  Some info about the class here.
    */
abstract class AbstractClassWithAbstractProp
{
    /**
   *Some info about the property here.
    *
     *  @var int
      */
    abstract $property {get;}
}
