message: Force ctor usage on Index_DoIndex
diff: @@ -786,11 +786,12 @@ struct Index_DoIndex {
  Parse,
  };
  + Index_DoIndex(Type type, const std::string& path, const optional<std::vector<std::string>>& args)
  + : type(type), path(path), args(args) {}
  +
  + Type type;
  std::string path;
  optional<std::vector<std::string>> args;
  - Type type;
  -
  - Index_DoIndex(Type type) : type(type) {}
  };
  struct Index_DoIdMap {
  @@ -888,9 +889,7 @@ void ImportCachedIndex(IndexerConfig* config,
  // Import all dependencies.
  for (auto& dependency_path : cache->dependencies) {
  std::cerr << "- Dispatching dependency import " << dependency_path << std::endl;
  - Index_DoIndex dep_index_request(Index_DoIndex::Type::ImportOnly);
  - dep_index_request.path = dependency_path;
  - queue_do_index->PriorityEnqueue(std::move(dep_index_request));
  + queue_do_index->PriorityEnqueue(Index_DoIndex(Index_DoIndex::Type::ImportOnly, dependency_path, nullopt));
  }
  *last_modification_time = cache->last_modification_time;
  @@ -1198,10 +1197,7 @@ void QueryDbMainLoop(
  << "] Dispatching index request for file " << filepath
  << std::endl;
  - Index_DoIndex request(Index_DoIndex::Type::ImportAndUpdate);
  - request.path = filepath;
  - request.args = entry.args;
  - queue_do_index->Enqueue(std::move(request));
  + queue_do_index->Enqueue(Index_DoIndex(Index_DoIndex::Type::ImportAndUpdate, filepath, entry.args));
  }
  break;
  }
  @@ -1228,18 +1224,16 @@ void QueryDbMainLoop(
  case IpcId::TextDocumentDidSave: {
  auto msg = static_cast<Ipc_TextDocumentDidSave*>(message.get());
  - WorkingFile* working_file = working_files->GetFileByFilename(msg->params.textDocument.uri.GetPath());
  - if (working_file) {
  - // TODO: Update working file indexed content when we actually get the
  + std::string path = msg->params.textDocument.uri.GetPath();
  +
  + // TODO: Update working file indexed content when we actually apply the
  // index update.
  + WorkingFile* working_file = working_files->GetFileByFilename(path);
  + if (working_file)
  working_file->SetIndexContent(working_file->buffer_content);
  - }
  // Send an index update request.
  - Index_DoIndex request(Index_DoIndex::Type::Parse);
  - request.path = msg->params.textDocument.uri.GetPath();
  - request.args = project->FindArgsForFile(msg->params.textDocument.uri.GetPath());
  - queue_do_index->Enqueue(std::move(request));
  + queue_do_index->Enqueue(Index_DoIndex(Index_DoIndex::Type::Parse, path, project->FindArgsForFile(path)));
  break;
  }
  