public function getUsedClasses()
    {
        if (empty($this->snippets)) {
            return array();
        }

        return array_unique(
            call_user_func_array(
                'array_merge',
                array_map(
                    function (Snippet $snippet) {
                        if (!$snippet instanceof ContextSnippet) {
                            return array();
                        }

                        return $snippet->getUsedClasses();
                    },
                    $this->snippets
                )
            )
        );
    }