diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -288,6 +288,7 @@ 'ArcanistArrayIndexSpacingXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistArraySeparatorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistBackoutWorkflow' => 'ArcanistWorkflow', + 'ArcanistBaseCommitParser' => 'Phobject', 'ArcanistBaseCommitParserTestCase' => 'PhutilTestCase', 'ArcanistBaseXHPASTLinter' => 'ArcanistFutureLinter', 'ArcanistBinaryExpressionSpacingXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -297,6 +298,7 @@ 'ArcanistBranchWorkflow' => 'ArcanistFeatureWorkflow', 'ArcanistBritishTestCase' => 'PhutilTestCase', 'ArcanistBrowseWorkflow' => 'ArcanistWorkflow', + 'ArcanistBundle' => 'Phobject', 'ArcanistBundleTestCase' => 'PhutilTestCase', 'ArcanistCSSLintLinter' => 'ArcanistExternalLinter', 'ArcanistCSSLintLinterTestCase' => 'ArcanistExternalLinterTestCase', @@ -318,6 +320,7 @@ 'ArcanistClosureLinterTestCase' => 'ArcanistExternalLinterTestCase', 'ArcanistCoffeeLintLinter' => 'ArcanistExternalLinter', 'ArcanistCoffeeLintLinterTestCase' => 'ArcanistExternalLinterTestCase', + 'ArcanistCommentRemover' => 'Phobject', 'ArcanistCommentRemoverTestCase' => 'PhutilTestCase', 'ArcanistCommentSpacingXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistCommentStyleXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -325,7 +328,9 @@ 'ArcanistCompilerLintRenderer' => 'ArcanistLintRenderer', 'ArcanistComprehensiveLintEngine' => 'ArcanistLintEngine', 'ArcanistConcatenationOperatorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', + 'ArcanistConfiguration' => 'Phobject', 'ArcanistConfigurationDrivenLintEngine' => 'ArcanistLintEngine', + 'ArcanistConfigurationManager' => 'Phobject', 'ArcanistConsoleLintRenderer' => 'ArcanistLintRenderer', 'ArcanistConstructorParenthesesXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistControlStatementSpacingXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -335,11 +340,19 @@ 'ArcanistCpplintLinter' => 'ArcanistExternalLinter', 'ArcanistCpplintLinterTestCase' => 'ArcanistExternalLinterTestCase', 'ArcanistDefaultParametersXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', + 'ArcanistDiffChange' => 'Phobject', + 'ArcanistDiffChangeType' => 'Phobject', + 'ArcanistDiffHunk' => 'Phobject', + 'ArcanistDiffParser' => 'Phobject', 'ArcanistDiffParserTestCase' => 'PhutilTestCase', + 'ArcanistDiffUtils' => 'Phobject', 'ArcanistDiffUtilsTestCase' => 'PhutilTestCase', 'ArcanistDiffWorkflow' => 'ArcanistWorkflow', + 'ArcanistDifferentialCommitMessage' => 'Phobject', 'ArcanistDifferentialCommitMessageParserException' => 'Exception', 'ArcanistDifferentialDependencyGraph' => 'AbstractDirectedGraph', + 'ArcanistDifferentialRevisionHash' => 'Phobject', + 'ArcanistDifferentialRevisionStatus' => 'Phobject', 'ArcanistDoubleQuoteXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistDownloadWorkflow' => 'ArcanistWorkflow', 'ArcanistDuplicateKeysInArrayXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -375,6 +388,8 @@ 'ArcanistHLintLinterTestCase' => 'ArcanistExternalLinterTestCase', 'ArcanistHelpWorkflow' => 'ArcanistWorkflow', 'ArcanistHgClientChannel' => 'PhutilProtocolChannel', + 'ArcanistHgProxyClient' => 'Phobject', + 'ArcanistHgProxyServer' => 'Phobject', 'ArcanistHgServerChannel' => 'PhutilProtocolChannel', 'ArcanistImplicitConstructorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistImplicitFallthroughXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -401,13 +416,21 @@ 'ArcanistLesscLinterTestCase' => 'ArcanistExternalLinterTestCase', 'ArcanistLiberateWorkflow' => 'ArcanistWorkflow', 'ArcanistLibraryTestCase' => 'PhutilLibraryTestCase', + 'ArcanistLintEngine' => 'Phobject', + 'ArcanistLintMessage' => 'Phobject', + 'ArcanistLintPatcher' => 'Phobject', + 'ArcanistLintRenderer' => 'Phobject', + 'ArcanistLintResult' => 'Phobject', + 'ArcanistLintSeverity' => 'Phobject', 'ArcanistLintWorkflow' => 'ArcanistWorkflow', + 'ArcanistLinter' => 'Phobject', 'ArcanistLinterTestCase' => 'PhutilTestCase', 'ArcanistLintersWorkflow' => 'ArcanistWorkflow', 'ArcanistListWorkflow' => 'ArcanistWorkflow', 'ArcanistLogicalOperatorsXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistLowercaseFunctionsXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistMercurialAPI' => 'ArcanistRepositoryAPI', + 'ArcanistMercurialParser' => 'Phobject', 'ArcanistMercurialParserTestCase' => 'PhutilTestCase', 'ArcanistMergeConflictLinter' => 'ArcanistLinter', 'ArcanistMergeConflictLinterTestCase' => 'ArcanistLinterTestCase', @@ -447,6 +470,7 @@ 'ArcanistPyFlakesLinterTestCase' => 'ArcanistExternalLinterTestCase', 'ArcanistPyLintLinter' => 'ArcanistExternalLinter', 'ArcanistPyLintLinterTestCase' => 'ArcanistExternalLinterTestCase', + 'ArcanistRepositoryAPI' => 'Phobject', 'ArcanistRepositoryAPIMiscTestCase' => 'PhutilTestCase', 'ArcanistRepositoryAPIStateTestCase' => 'PhutilTestCase', 'ArcanistReusedAsIteratorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -461,6 +485,7 @@ 'ArcanistSelfMemberReferenceXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistSemicolonSpacingXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistSetConfigWorkflow' => 'ArcanistWorkflow', + 'ArcanistSettings' => 'Phobject', 'ArcanistShellCompleteWorkflow' => 'ArcanistWorkflow', 'ArcanistSingleLintEngine' => 'ArcanistLintEngine', 'ArcanistSlownessXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -474,6 +499,7 @@ 'ArcanistSyntaxErrorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistTasksWorkflow' => 'ArcanistWorkflow', 'ArcanistTautologicalExpressionXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', + 'ArcanistTestResultParser' => 'Phobject', 'ArcanistTestXHPASTLintSwitchHook' => 'ArcanistXHPASTLintSwitchHook', 'ArcanistTextLinter' => 'ArcanistLinter', 'ArcanistTextLinterTestCase' => 'ArcanistLinterTestCase', @@ -485,6 +511,9 @@ 'ArcanistUnableToParseXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistUndeclaredVariableXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', 'ArcanistUnitConsoleRenderer' => 'ArcanistUnitRenderer', + 'ArcanistUnitRenderer' => 'Phobject', + 'ArcanistUnitTestEngine' => 'Phobject', + 'ArcanistUnitTestResult' => 'Phobject', 'ArcanistUnitTestableLintEngine' => 'ArcanistLintEngine', 'ArcanistUnitWorkflow' => 'ArcanistWorkflow', 'ArcanistUnnecessaryFinalModifierXHPASTLinterRule' => 'ArcanistXHPASTLinterRule', @@ -498,15 +527,21 @@ 'ArcanistVersionWorkflow' => 'ArcanistWorkflow', 'ArcanistWhichWorkflow' => 'ArcanistWorkflow', 'ArcanistWorkflow' => 'Phobject', + 'ArcanistWorkingCopyIdentity' => 'Phobject', + 'ArcanistXHPASTLintNamingHook' => 'Phobject', 'ArcanistXHPASTLintNamingHookTestCase' => 'PhutilTestCase', + 'ArcanistXHPASTLintSwitchHook' => 'Phobject', 'ArcanistXHPASTLinter' => 'ArcanistBaseXHPASTLinter', + 'ArcanistXHPASTLinterRule' => 'Phobject', 'ArcanistXHPASTLinterTestCase' => 'ArcanistLinterTestCase', 'ArcanistXMLLinter' => 'ArcanistLinter', 'ArcanistXMLLinterTestCase' => 'ArcanistLinterTestCase', + 'ArcanistXUnitTestResultParser' => 'Phobject', 'CSharpToolsTestEngine' => 'XUnitTestEngine', 'NoseTestEngine' => 'ArcanistUnitTestEngine', 'PhpunitTestEngine' => 'ArcanistUnitTestEngine', 'PhpunitTestEngineTestCase' => 'PhutilTestCase', + 'PhutilTestCase' => 'Phobject', 'PhutilTestCaseTestCase' => 'PhutilTestCase', 'PhutilTestSkippedException' => 'Exception', 'PhutilTestTerminatedException' => 'Exception', diff --git a/src/configuration/ArcanistConfiguration.php b/src/configuration/ArcanistConfiguration.php --- a/src/configuration/ArcanistConfiguration.php +++ b/src/configuration/ArcanistConfiguration.php @@ -19,7 +19,7 @@ * * @concrete-extensible */ -class ArcanistConfiguration { +class ArcanistConfiguration extends Phobject { public function buildWorkflow($command) { if ($command == '--help') { diff --git a/src/configuration/ArcanistConfigurationManager.php b/src/configuration/ArcanistConfigurationManager.php --- a/src/configuration/ArcanistConfigurationManager.php +++ b/src/configuration/ArcanistConfigurationManager.php @@ -3,7 +3,7 @@ /** * This class holds everything related to configuration and configuration files. */ -final class ArcanistConfigurationManager { +final class ArcanistConfigurationManager extends Phobject { private $runtimeConfig = array(); private $workingCopy = null; diff --git a/src/configuration/ArcanistSettings.php b/src/configuration/ArcanistSettings.php --- a/src/configuration/ArcanistSettings.php +++ b/src/configuration/ArcanistSettings.php @@ -1,6 +1,6 @@ <?php -final class ArcanistSettings { +final class ArcanistSettings extends Phobject { private function getOptions() { return array( diff --git a/src/difference/ArcanistDiffUtils.php b/src/difference/ArcanistDiffUtils.php --- a/src/difference/ArcanistDiffUtils.php +++ b/src/difference/ArcanistDiffUtils.php @@ -3,7 +3,7 @@ /** * Dumping ground for diff- and diff-algorithm-related miscellany. */ -final class ArcanistDiffUtils { +final class ArcanistDiffUtils extends Phobject { /** * Make a best-effort attempt to determine if a file is definitely binary. diff --git a/src/differential/ArcanistDifferentialCommitMessage.php b/src/differential/ArcanistDifferentialCommitMessage.php --- a/src/differential/ArcanistDifferentialCommitMessage.php +++ b/src/differential/ArcanistDifferentialCommitMessage.php @@ -3,7 +3,7 @@ /** * Represents a parsed commit message. */ -final class ArcanistDifferentialCommitMessage { +final class ArcanistDifferentialCommitMessage extends Phobject { private $rawCorpus; private $revisionID; diff --git a/src/differential/constants/ArcanistDifferentialRevisionHash.php b/src/differential/constants/ArcanistDifferentialRevisionHash.php --- a/src/differential/constants/ArcanistDifferentialRevisionHash.php +++ b/src/differential/constants/ArcanistDifferentialRevisionHash.php @@ -1,6 +1,6 @@ <?php -final class ArcanistDifferentialRevisionHash { +final class ArcanistDifferentialRevisionHash extends Phobject { const TABLE_NAME = 'differential_revisionhash'; diff --git a/src/differential/constants/ArcanistDifferentialRevisionStatus.php b/src/differential/constants/ArcanistDifferentialRevisionStatus.php --- a/src/differential/constants/ArcanistDifferentialRevisionStatus.php +++ b/src/differential/constants/ArcanistDifferentialRevisionStatus.php @@ -1,6 +1,6 @@ <?php -final class ArcanistDifferentialRevisionStatus { +final class ArcanistDifferentialRevisionStatus extends Phobject { const NEEDS_REVIEW = 0; const NEEDS_REVISION = 1; diff --git a/src/hgdaemon/ArcanistHgProxyClient.php b/src/hgdaemon/ArcanistHgProxyClient.php --- a/src/hgdaemon/ArcanistHgProxyClient.php +++ b/src/hgdaemon/ArcanistHgProxyClient.php @@ -26,7 +26,7 @@ * @task exec Executing Mercurial Commands * @task internal Internals */ -final class ArcanistHgProxyClient { +final class ArcanistHgProxyClient extends Phobject { private $workingCopy; private $server; diff --git a/src/hgdaemon/ArcanistHgProxyServer.php b/src/hgdaemon/ArcanistHgProxyServer.php --- a/src/hgdaemon/ArcanistHgProxyServer.php +++ b/src/hgdaemon/ArcanistHgProxyServer.php @@ -26,7 +26,7 @@ * @task hg Managing Mercurial * @task internal Internals */ -final class ArcanistHgProxyServer { +final class ArcanistHgProxyServer extends Phobject { private $workingCopy; private $socket; diff --git a/src/lint/ArcanistLintMessage.php b/src/lint/ArcanistLintMessage.php --- a/src/lint/ArcanistLintMessage.php +++ b/src/lint/ArcanistLintMessage.php @@ -3,7 +3,7 @@ /** * Message emitted by a linter, like an error or warning. */ -final class ArcanistLintMessage { +final class ArcanistLintMessage extends Phobject { protected $path; protected $line; diff --git a/src/lint/ArcanistLintPatcher.php b/src/lint/ArcanistLintPatcher.php --- a/src/lint/ArcanistLintPatcher.php +++ b/src/lint/ArcanistLintPatcher.php @@ -3,7 +3,7 @@ /** * Applies lint patches to the working copy. */ -final class ArcanistLintPatcher { +final class ArcanistLintPatcher extends Phobject { private $dirtyUntil = 0; private $characterDelta = 0; diff --git a/src/lint/ArcanistLintResult.php b/src/lint/ArcanistLintResult.php --- a/src/lint/ArcanistLintResult.php +++ b/src/lint/ArcanistLintResult.php @@ -3,7 +3,7 @@ /** * A group of @{class:ArcanistLintMessage}s that apply to a file. */ -final class ArcanistLintResult { +final class ArcanistLintResult extends Phobject { protected $path; protected $data; diff --git a/src/lint/ArcanistLintSeverity.php b/src/lint/ArcanistLintSeverity.php --- a/src/lint/ArcanistLintSeverity.php +++ b/src/lint/ArcanistLintSeverity.php @@ -3,7 +3,7 @@ /** * Describes the severity of an @{class:ArcanistLintMessage}. */ -final class ArcanistLintSeverity { +final class ArcanistLintSeverity extends Phobject { const SEVERITY_ADVICE = 'advice'; const SEVERITY_AUTOFIX = 'autofix'; diff --git a/src/lint/engine/ArcanistLintEngine.php b/src/lint/engine/ArcanistLintEngine.php --- a/src/lint/engine/ArcanistLintEngine.php +++ b/src/lint/engine/ArcanistLintEngine.php @@ -41,7 +41,7 @@ * * @stable */ -abstract class ArcanistLintEngine { +abstract class ArcanistLintEngine extends Phobject { protected $workingCopy; protected $paths = array(); diff --git a/src/lint/linter/ArcanistLinter.php b/src/lint/linter/ArcanistLinter.php --- a/src/lint/linter/ArcanistLinter.php +++ b/src/lint/linter/ArcanistLinter.php @@ -8,7 +8,7 @@ * @task exec Executing Linters * @stable */ -abstract class ArcanistLinter { +abstract class ArcanistLinter extends Phobject { const GRANULARITY_FILE = 1; const GRANULARITY_DIRECTORY = 2; diff --git a/src/lint/linter/xhpast/ArcanistXHPASTLintNamingHook.php b/src/lint/linter/xhpast/ArcanistXHPASTLintNamingHook.php --- a/src/lint/linter/xhpast/ArcanistXHPASTLintNamingHook.php +++ b/src/lint/linter/xhpast/ArcanistXHPASTLintNamingHook.php @@ -9,7 +9,7 @@ * @task internal Internals * @stable */ -abstract class ArcanistXHPASTLintNamingHook { +abstract class ArcanistXHPASTLintNamingHook extends Phobject { /* -( Internals )---------------------------------------------------------- */ diff --git a/src/lint/linter/xhpast/ArcanistXHPASTLintSwitchHook.php b/src/lint/linter/xhpast/ArcanistXHPASTLintSwitchHook.php --- a/src/lint/linter/xhpast/ArcanistXHPASTLintSwitchHook.php +++ b/src/lint/linter/xhpast/ArcanistXHPASTLintSwitchHook.php @@ -4,7 +4,7 @@ * You can extend this class and set `xhpast.switchhook` in your `.arclint` * to have an opportunity to override results for linting `switch` statements. */ -abstract class ArcanistXHPASTLintSwitchHook { +abstract class ArcanistXHPASTLintSwitchHook extends Phobject { /** * @return bool True if token safely ends the block. diff --git a/src/lint/linter/xhpast/ArcanistXHPASTLinterRule.php b/src/lint/linter/xhpast/ArcanistXHPASTLinterRule.php --- a/src/lint/linter/xhpast/ArcanistXHPASTLinterRule.php +++ b/src/lint/linter/xhpast/ArcanistXHPASTLinterRule.php @@ -1,6 +1,6 @@ <?php -abstract class ArcanistXHPASTLinterRule { +abstract class ArcanistXHPASTLinterRule extends Phobject { private $linter = null; diff --git a/src/lint/renderer/ArcanistLintRenderer.php b/src/lint/renderer/ArcanistLintRenderer.php --- a/src/lint/renderer/ArcanistLintRenderer.php +++ b/src/lint/renderer/ArcanistLintRenderer.php @@ -3,7 +3,7 @@ /** * Shows lint messages to the user. */ -abstract class ArcanistLintRenderer { +abstract class ArcanistLintRenderer extends Phobject { public function renderPreamble() { return ''; diff --git a/src/parser/ArcanistBaseCommitParser.php b/src/parser/ArcanistBaseCommitParser.php --- a/src/parser/ArcanistBaseCommitParser.php +++ b/src/parser/ArcanistBaseCommitParser.php @@ -1,6 +1,6 @@ <?php -final class ArcanistBaseCommitParser { +final class ArcanistBaseCommitParser extends Phobject { private $api; private $try; diff --git a/src/parser/ArcanistBundle.php b/src/parser/ArcanistBundle.php --- a/src/parser/ArcanistBundle.php +++ b/src/parser/ArcanistBundle.php @@ -3,7 +3,7 @@ /** * Converts changesets between different formats. */ -final class ArcanistBundle { +final class ArcanistBundle extends Phobject { private $changes; private $conduit; diff --git a/src/parser/ArcanistCommentRemover.php b/src/parser/ArcanistCommentRemover.php --- a/src/parser/ArcanistCommentRemover.php +++ b/src/parser/ArcanistCommentRemover.php @@ -1,6 +1,6 @@ <?php -final class ArcanistCommentRemover { +final class ArcanistCommentRemover extends Phobject { /** * Remove comment lines from a commit message. Strips trailing lines only, diff --git a/src/parser/ArcanistDiffParser.php b/src/parser/ArcanistDiffParser.php --- a/src/parser/ArcanistDiffParser.php +++ b/src/parser/ArcanistDiffParser.php @@ -3,7 +3,7 @@ /** * Parses diffs from a working copy. */ -final class ArcanistDiffParser { +final class ArcanistDiffParser extends Phobject { protected $repositoryAPI; protected $text; diff --git a/src/parser/diff/ArcanistDiffChange.php b/src/parser/diff/ArcanistDiffChange.php --- a/src/parser/diff/ArcanistDiffChange.php +++ b/src/parser/diff/ArcanistDiffChange.php @@ -3,7 +3,7 @@ /** * Represents a change to an individual path. */ -final class ArcanistDiffChange { +final class ArcanistDiffChange extends Phobject { protected $metadata = array(); diff --git a/src/parser/diff/ArcanistDiffChangeType.php b/src/parser/diff/ArcanistDiffChangeType.php --- a/src/parser/diff/ArcanistDiffChangeType.php +++ b/src/parser/diff/ArcanistDiffChangeType.php @@ -3,7 +3,7 @@ /** * Defines constants for file types and operations in changesets. */ -final class ArcanistDiffChangeType { +final class ArcanistDiffChangeType extends Phobject { const TYPE_ADD = 1; const TYPE_CHANGE = 2; diff --git a/src/parser/diff/ArcanistDiffHunk.php b/src/parser/diff/ArcanistDiffHunk.php --- a/src/parser/diff/ArcanistDiffHunk.php +++ b/src/parser/diff/ArcanistDiffHunk.php @@ -3,7 +3,7 @@ /** * Represents a contiguous set of added and removed lines in a diff. */ -final class ArcanistDiffHunk { +final class ArcanistDiffHunk extends Phobject { protected $oldOffset; protected $oldLength; diff --git a/src/repository/api/ArcanistRepositoryAPI.php b/src/repository/api/ArcanistRepositoryAPI.php --- a/src/repository/api/ArcanistRepositoryAPI.php +++ b/src/repository/api/ArcanistRepositoryAPI.php @@ -5,7 +5,7 @@ * * @task status Path Status */ -abstract class ArcanistRepositoryAPI { +abstract class ArcanistRepositoryAPI extends Phobject { const FLAG_MODIFIED = 1; const FLAG_ADDED = 2; diff --git a/src/repository/parser/ArcanistMercurialParser.php b/src/repository/parser/ArcanistMercurialParser.php --- a/src/repository/parser/ArcanistMercurialParser.php +++ b/src/repository/parser/ArcanistMercurialParser.php @@ -6,7 +6,7 @@ * * @task parse Parsing "hg" Output */ -final class ArcanistMercurialParser { +final class ArcanistMercurialParser extends Phobject { /* -( Parsing "hg" Output )------------------------------------------------ */ diff --git a/src/unit/ArcanistUnitTestResult.php b/src/unit/ArcanistUnitTestResult.php --- a/src/unit/ArcanistUnitTestResult.php +++ b/src/unit/ArcanistUnitTestResult.php @@ -3,7 +3,7 @@ /** * Represents the outcome of running a unit test. */ -final class ArcanistUnitTestResult { +final class ArcanistUnitTestResult extends Phobject { const RESULT_PASS = 'pass'; const RESULT_FAIL = 'fail'; diff --git a/src/unit/engine/ArcanistUnitTestEngine.php b/src/unit/engine/ArcanistUnitTestEngine.php --- a/src/unit/engine/ArcanistUnitTestEngine.php +++ b/src/unit/engine/ArcanistUnitTestEngine.php @@ -3,7 +3,7 @@ /** * Manages unit test execution. */ -abstract class ArcanistUnitTestEngine { +abstract class ArcanistUnitTestEngine extends Phobject { private $workingCopy; private $paths; @@ -11,6 +11,7 @@ private $enableAsyncTests; private $enableCoverage; private $runAllTests; + private $configurationManager; protected $renderer; final public function __construct() {} diff --git a/src/unit/engine/phutil/PhutilTestCase.php b/src/unit/engine/phutil/PhutilTestCase.php --- a/src/unit/engine/phutil/PhutilTestCase.php +++ b/src/unit/engine/phutil/PhutilTestCase.php @@ -8,7 +8,7 @@ * @task hook Hooks for Setup and Teardown * @task internal Internals */ -abstract class PhutilTestCase { +abstract class PhutilTestCase extends Phobject { private $assertions = 0; private $runningTest; diff --git a/src/unit/parser/ArcanistTestResultParser.php b/src/unit/parser/ArcanistTestResultParser.php --- a/src/unit/parser/ArcanistTestResultParser.php +++ b/src/unit/parser/ArcanistTestResultParser.php @@ -3,7 +3,7 @@ /** * Abstract base class for test result parsers. */ -abstract class ArcanistTestResultParser { +abstract class ArcanistTestResultParser extends Phobject { protected $enableCoverage; protected $projectRoot; diff --git a/src/unit/parser/ArcanistXUnitTestResultParser.php b/src/unit/parser/ArcanistXUnitTestResultParser.php --- a/src/unit/parser/ArcanistXUnitTestResultParser.php +++ b/src/unit/parser/ArcanistXUnitTestResultParser.php @@ -3,7 +3,7 @@ /** * Parser for JUnit, NUnit, etc results format */ -final class ArcanistXUnitTestResultParser { +final class ArcanistXUnitTestResultParser extends Phobject { /** * Parse test results from provided input and return an array diff --git a/src/unit/renderer/ArcanistUnitRenderer.php b/src/unit/renderer/ArcanistUnitRenderer.php --- a/src/unit/renderer/ArcanistUnitRenderer.php +++ b/src/unit/renderer/ArcanistUnitRenderer.php @@ -1,6 +1,6 @@ <?php -abstract class ArcanistUnitRenderer { +abstract class ArcanistUnitRenderer extends Phobject { abstract public function renderUnitResult(ArcanistUnitTestResult $result); abstract public function renderPostponedResult($count); } diff --git a/src/workingcopyidentity/ArcanistWorkingCopyIdentity.php b/src/workingcopyidentity/ArcanistWorkingCopyIdentity.php --- a/src/workingcopyidentity/ArcanistWorkingCopyIdentity.php +++ b/src/workingcopyidentity/ArcanistWorkingCopyIdentity.php @@ -5,7 +5,7 @@ * * @task config */ -final class ArcanistWorkingCopyIdentity { +final class ArcanistWorkingCopyIdentity extends Phobject { private $projectConfig; private $projectRoot;