code: public static function printError(Error $error)
      {
          $printedLocations = [];
          if ($error->nodes) {
              /** @var Node $node */
              foreach ($error->nodes as $node) {
                  if (! $node->loc) {
                      continue;
                  }
  
                  if ($node->loc->source === null) {
                      continue;
                  }
  
                  $printedLocations[] = self::highlightSourceAtLocation(
                      $node->loc->source,
                      $node->loc->source->getLocation($node->loc->start)
                  );
              }
          } elseif ($error->getSource() && $error->getLocations()) {
              $source = $error->getSource();
              foreach ($error->getLocations() as $location) {
                  $printedLocations[] = self::highlightSourceAtLocation($source, $location);
              }
          }
  
          return ! $printedLocations
              ? $error->getMessage()
              : implode("\n\n", array_merge([$error->getMessage()], $printedLocations)) . "\n";
      }
docs: Prints a GraphQLError to a string, representing useful location information
  about the error's position in the source.
  
  @return string