/**
  * @param $parameter
  * @param $class
  * @param Stack $dependencyChain
  * @return InvalidArgumentException
  */
 public static function dependencyChainContainsLoop($parameter, $class, Stack $dependencyChain)
 {
     $chain = $dependencyChain->toString(' <= ');
     return new self(sprintf(self::MESSAGE_DEPENDENCY_LOOP, $parameter, $class, $chain));
 }