/** * @param AbstractType $abstractType * @return ObjectType[] */ public function getPossibleTypes(AbstractType $abstractType) { if ($abstractType instanceof UnionType) { return $abstractType->getTypes(); } Utils::invariant($abstractType instanceof InterfaceType); return isset($this->implementations[$abstractType->name]) ? $this->implementations[$abstractType->name] : []; }