Array auto-completion in PhpStorm

Being a recent adopter of PhpStorm I find new amazing things about the IDE each day.
After finding out that PhpStorm can type hint multiple interfaces on the same var I’ve found out that it can take care of auto-completion for object instances stored in arrays as well.

An example

With an object like this

class Post extends Model implements TitleProperty{
    public function updateTitle($newTitle){
        ...
    }

    public function resetTitle(){
        ...
    }

    public function getTitle(){

    }
}

I might be handling the Post collection in a PostCollection class

class PostCollection {

    /** @var array */
    protected $posts;

    public function resetAllTitles(){
        foreach ($this->posts as $post){

            // what type is $post?
            // no auto-completion here...
            $post->resetTitle();
        }
    }
}

PhpStorm allows for arrays to be characterized not just as arrays but as arrays of objects of a certain class or implementing a certain interface modifying the notation above from this

/** @var array */
protected $posts;

to one suggesting the parent class

/** @var Model[] */
protected $posts;

or one suggesting the class

/** @var Post[] */
protected $posts;

or even the interface

/** @var TitleProperty[] */
protected $posts;

and get method auto-completion on any object coming from that array. Brilliant.

I appreciate your input