private static function mergeDefinitionPair()

in src/api-gen/DataMerger.php [133:162]


  private static function mergeDefinitionPair<T as ScannedDefinition>(
    T $a,
    ?T $b,
  ): ScannedDefinition {
    if ($b === null) {
      return $a;
    }

    if ($a is ScannedClassish) {
      return self::mergeClassishPair($a, $b);
    }

    if ($a is ScannedFunction) {
      return self::mergeFunctionPair($a, $b);
    }

    if ($a is ScannedMethod) {
      return self::mergeMethodPair($a, $b);
    }

    if ($a is ScannedConstant) {
      return self::mergeConstantPair($a, $b);
    }

    if ($a is ScannedProperty) {
      return self::mergePropertyPair($a, $b);
    }

    invariant_violation('Unhandled type %s', \get_class($a));
  }