From 0e0957872083daa38309204ad9774568c9fcdd5c Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Tue, 11 Aug 2015 06:50:47 +1000 Subject: [PATCH] Use PhutilClassMapQuery instead of PhutilSymbolLoader Summary: Use `PhutilClassMapQuery` instead of `PhutilSymbolLoader`, mainly for consistency. Depends on D13572. Test Plan: This hasn't been tested very comphrehensively as of yet. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D13573 --- src/configuration/ArcanistConfiguration.php | 24 ++------------ .../ArcanistConfigurationDrivenLintEngine.php | 32 ++----------------- src/unit/engine/PhutilUnitTestEngine.php | 6 ++-- src/workflow/ArcanistLintersWorkflow.php | 4 +-- 4 files changed, 10 insertions(+), 56 deletions(-) diff --git a/src/configuration/ArcanistConfiguration.php b/src/configuration/ArcanistConfiguration.php index 71152587..91d0dc65 100644 --- a/src/configuration/ArcanistConfiguration.php +++ b/src/configuration/ArcanistConfiguration.php @@ -35,28 +35,10 @@ class ArcanistConfiguration extends Phobject { } public function buildAllWorkflows() { - $workflows_by_name = array(); - - $workflows_by_class_name = id(new PhutilSymbolLoader()) + return id(new PhutilClassMapQuery()) ->setAncestorClass('ArcanistWorkflow') - ->loadObjects(); - foreach ($workflows_by_class_name as $class => $workflow) { - $name = $workflow->getWorkflowName(); - - if (isset($workflows_by_name[$name])) { - $other = get_class($workflows_by_name[$name]); - throw new Exception( - pht( - 'Workflows %s and %s both implement workflows named %s.', - $class, - $other, - $name)); - } - - $workflows_by_name[$name] = $workflow; - } - - return $workflows_by_name; + ->setUniqueMethod('getWorkflowName') + ->execute(); } final public function isValidWorkflow($workflow) { diff --git a/src/lint/engine/ArcanistConfigurationDrivenLintEngine.php b/src/lint/engine/ArcanistConfigurationDrivenLintEngine.php index 531ccf6c..9d8693af 100644 --- a/src/lint/engine/ArcanistConfigurationDrivenLintEngine.php +++ b/src/lint/engine/ArcanistConfigurationDrivenLintEngine.php @@ -137,36 +137,10 @@ final class ArcanistConfigurationDrivenLintEngine extends ArcanistLintEngine { } private function loadAvailableLinters() { - $linters = id(new PhutilSymbolLoader()) + return id(new PhutilClassMapQuery()) ->setAncestorClass('ArcanistLinter') - ->loadObjects(); - - $map = array(); - foreach ($linters as $linter) { - $name = $linter->getLinterConfigurationName(); - - // This linter isn't selectable through configuration. - if ($name === null) { - continue; - } - - if (empty($map[$name])) { - $map[$name] = $linter; - continue; - } - - $orig_class = get_class($map[$name]); - $this_class = get_class($linter); - throw new Exception( - pht( - "Two linters (`%s`, `%s`) both have the same configuration ". - "name ('%s'). Linters must have unique configuration names.", - $orig_class, - $this_class, - $name)); - } - - return $map; + ->setUniqueMethod('getLinterConfigurationName', true) + ->execute(); } private function matchPaths( diff --git a/src/unit/engine/PhutilUnitTestEngine.php b/src/unit/engine/PhutilUnitTestEngine.php index 7509b300..1dd47220 100644 --- a/src/unit/engine/PhutilUnitTestEngine.php +++ b/src/unit/engine/PhutilUnitTestEngine.php @@ -76,11 +76,9 @@ final class PhutilUnitTestEngine extends ArcanistUnitTestEngine { private function getAllTests() { $project_root = $this->getWorkingCopy()->getProjectRoot(); - $symbols = id(new PhutilSymbolLoader()) - ->setType('class') + $symbols = id(new PhutilClassMapQuery()) ->setAncestorClass('PhutilTestCase') - ->setConcreteOnly(true) - ->selectSymbolsWithoutLoading(); + ->execute(); $in_working_copy = array(); diff --git a/src/workflow/ArcanistLintersWorkflow.php b/src/workflow/ArcanistLintersWorkflow.php index b872e300..6d70b4d6 100644 --- a/src/workflow/ArcanistLintersWorkflow.php +++ b/src/workflow/ArcanistLintersWorkflow.php @@ -36,9 +36,9 @@ EOTEXT public function run() { $console = PhutilConsole::getConsole(); - $linters = id(new PhutilSymbolLoader()) + $linters = id(new PhutilClassMapQuery()) ->setAncestorClass('ArcanistLinter') - ->loadObjects(); + ->execute(); try { $built = $this->newLintEngine()->buildLinters();