HomePhabricator

Replace the informal "array" subtype map with a more formal "SubtypeMap" object

Description

Replace the informal "array" subtype map with a more formal "SubtypeMap" object

Summary: Ref T13222. Ref T12588. See PHI683. To make "Create Subtask..." fancier, we need slightly more logic around subtype maps. Upgrade the plain old array into a proper object so it can have relevant methods, notably "get a list of valid child subtypes for some parent subtype".

Test Plan: Created and edited tasks, changed task subtypes. Grepped for affected symbols (newEditEngineSubtypeMap, newSubtypeMap).

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13222, T12588

Differential Revision: https://secure.phabricator.com/D19852