testData/completion/genericMixins/genericAndPlainMixins.php [3:29]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class MixinClass1
{
  public string $mixinClassProperty1;

  public function mixinClassMethod1() {}
}

class MixinClass2
{
  public string $mixinClassProperty2;

  public function mixinClassMethod2() {}
}

/**
 * @template T
 * @mixin T
 * @mixin MixinClass2
 */
class GenericFoo {}

/**
 * @param GenericFoo<MixinClass1> $foo
 */
function doFoo(GenericFoo $foo): void
{
  $foo-><caret>;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



testData/completion/genericMixins/severalMixins.php [3:30]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class MixinClass1
{
  public string $mixinClassProperty1;

  public function mixinClassMethod1() {}
}

class MixinClass2
{
  public string $mixinClassProperty2;

  public function mixinClassMethod2() {}
}

/**
 * @template T
 * @template T2
 * @mixin T
 * @mixin T2
 */
class GenericFoo {}

/**
 * @param GenericFoo<MixinClass1, MixinClass2> $foo
 */
function doFoo(GenericFoo $foo): void
{
  $foo-><caret>;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



