Use a fork of `ctor` to silence warnings generated by macro (#3275)

Marshall Bowers created

This PR switches us over to a fork of `ctor` that contains the fixes
from https://github.com/mmastrac/rust-ctor/pull/295, backported to our
current version of `ctor` (v0.1.20).

Once 1) the `ctor` maintainer publishes a new version with that change
and 2) we're ready to upgrade to the latest version of `ctor` we can
switch back to the mainline version.

Release Notes:

- N/A

Change summary

Cargo.lock             | 5 ++---
Cargo.toml             | 5 ++++-
crates/zed/Cargo.toml  | 2 +-
crates/zed2/Cargo.toml | 2 +-
4 files changed, 8 insertions(+), 6 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -2334,9 +2334,8 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+version = "0.1.20"
+source = "git+https://github.com/zed-industries/rust-ctor?rev=7f824cf6a7943885a649b579f33f9ac53f0d1db6#7f824cf6a7943885a649b579f33f9ac53f0d1db6"
 dependencies = [
  "quote",
  "syn 1.0.109",

Cargo.toml 🔗

@@ -117,7 +117,10 @@ resolver = "2"
 [workspace.dependencies]
 anyhow = { version = "1.0.57" }
 async-trait = { version = "0.1" }
-ctor = { version = "0.1" }
+# TODO: Switch back to the published version of `ctor` once:
+#       1. A new version of `ctor` is published with this change: https://github.com/mmastrac/rust-ctor/pull/295
+#       2. We've confirmed it's fine to update to the latest version of `ctor` (we're currently on v0.1.20).
+ctor = { git = "https://github.com/zed-industries/rust-ctor", rev = "7f824cf6a7943885a649b579f33f9ac53f0d1db6" }
 derive_more = { version = "0.99.17" }
 env_logger = { version = "0.9" }
 futures = { version = "0.3" }

crates/zed/Cargo.toml 🔗

@@ -84,7 +84,7 @@ async-recursion = "0.3"
 async-trait.workspace = true
 backtrace = "0.3"
 chrono = "0.4"
-ctor = "0.1.20"
+ctor.workspace = true
 env_logger.workspace = true
 futures.workspace = true
 ignore = "0.4"

crates/zed2/Cargo.toml 🔗

@@ -80,7 +80,7 @@ async-recursion = "0.3"
 async-trait.workspace = true
 backtrace = "0.3"
 chrono = "0.4"
-ctor = "0.1.20"
+ctor.workspace = true
 env_logger.workspace = true
 futures.workspace = true
 ignore = "0.4"