fix(cargo-bazel): ignore example crates when checking if proc-macro (#2596)
# WHAT
* ignore example crate types when checking if it is a proc-macro
# WHY
When building the list of `deps` and `proc_macro_deps` for a given
crate,
dependency crates which contain examples in their Cargo.yaml of of type
`proc-macro` cause the dependency to be added to the `proc_macro_deps`.
The
example crate types should be ignored.
Fixes #2577
Co-authored-by: UebelAndre <github@uebelandre.com>
diff --git a/crate_universe/src/metadata/dependency.rs b/crate_universe/src/metadata/dependency.rs
index b37dbcb..7e66274 100644
--- a/crate_universe/src/metadata/dependency.rs
+++ b/crate_universe/src/metadata/dependency.rs
@@ -197,10 +197,10 @@
}
fn is_proc_macro_package(package: &Package) -> bool {
- package
- .targets
- .iter()
- .any(|target| target.crate_types.iter().any(|t| t == "proc-macro"))
+ package.targets.iter().any(|target| {
+ target.crate_types.iter().any(|t| t == "proc-macro")
+ && !target.kind.iter().any(|t| t == "example")
+ })
}
fn is_dev_dependency(node_dep: &NodeDep) -> bool {
@@ -426,6 +426,30 @@
}
#[test]
+ fn example_proc_macro_dep() {
+ let metadata = metadata::example_proc_macro_dep();
+
+ let node = find_metadata_node("example-proc-macro-dep", &metadata);
+ let dependencies = DependencySet::new_for_node(node, &metadata);
+
+ let normal_deps: Vec<_> = dependencies
+ .normal_deps
+ .items()
+ .into_iter()
+ .map(|(_, dep)| dep.target_name)
+ .collect();
+ assert_eq!(normal_deps, vec!["proc-macro-rules"]);
+
+ let proc_macro_deps: Vec<_> = dependencies
+ .proc_macro_deps
+ .items()
+ .into_iter()
+ .map(|(_, dep)| dep.target_name)
+ .collect();
+ assert_eq!(proc_macro_deps, Vec::<&str>::new());
+ }
+
+ #[test]
fn sys_dependencies() {
let metadata = metadata::build_scripts();
diff --git a/crate_universe/src/test.rs b/crate_universe/src/test.rs
index 989472b..c2ddd59 100644
--- a/crate_universe/src/test.rs
+++ b/crate_universe/src/test.rs
@@ -139,6 +139,14 @@
.unwrap()
}
+ pub(crate) fn example_proc_macro_dep() -> cargo_metadata::Metadata {
+ serde_json::from_str(include_str!(concat!(
+ env!("CARGO_MANIFEST_DIR"),
+ "/test_data/metadata/example_proc_macro_dep/metadata.json"
+ )))
+ .unwrap()
+ }
+
pub(crate) fn git_repos() -> cargo_metadata::Metadata {
serde_json::from_str(include_str!(concat!(
env!("CARGO_MANIFEST_DIR"),
diff --git a/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.lock b/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.lock
new file mode 100644
index 0000000..89a48e1
--- /dev/null
+++ b/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.lock
@@ -0,0 +1,74 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "example-proc-macro-dep"
+version = "0.1.0"
+dependencies = [
+ "proc-macro-rules",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "proc-macro-rules"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f"
+dependencies = [
+ "proc-macro-rules-macros",
+ "proc-macro2",
+ "syn",
+]
+
+[[package]]
+name = "proc-macro-rules-macros"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7"
+dependencies = [
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
diff --git a/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.toml b/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.toml
new file mode 100644
index 0000000..25d63c8
--- /dev/null
+++ b/crate_universe/test_data/metadata/example_proc_macro_dep/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "example-proc-macro-dep"
+version = "0.1.0"
+edition = "2018"
+
+# Required to satisfy cargo but no `lib.rs` is expected to
+# exist within test data.
+[lib]
+path = "lib.rs"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+proc-macro-rules = "=0.4.0"
diff --git a/crate_universe/test_data/metadata/example_proc_macro_dep/metadata.json b/crate_universe/test_data/metadata/example_proc_macro_dep/metadata.json
new file mode 100644
index 0000000..4f59691
--- /dev/null
+++ b/crate_universe/test_data/metadata/example_proc_macro_dep/metadata.json
@@ -0,0 +1,2033 @@
+{
+ "packages": [
+ {
+ "name": "example-proc-macro-dep",
+ "version": "0.1.0",
+ "id": "example-proc-macro-dep 0.1.0 (path+file://{TEMP_DIR}/example-proc-macro-dep)",
+ "license": null,
+ "license_file": null,
+ "description": null,
+ "source": null,
+ "dependencies": [
+ {
+ "name": "proc-macro-rules",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "=0.4.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "example-proc-macro-dep",
+ "src_path": "{TEMP_DIR}/example_proc_macro_dep/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "{TEMP_DIR}/example_proc_macro_dep/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [],
+ "categories": [],
+ "keywords": [],
+ "readme": null,
+ "repository": null,
+ "homepage": null,
+ "documentation": null,
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "once_cell",
+ "version": "1.19.0",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Single assignment cells and lazy values.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "critical-section",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "parking_lot_core",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.9.3",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "portable-atomic",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "critical-section",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.1.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "std"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "regex",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.2.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "once_cell",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "bench_acquire",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench_acquire.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "lazy_static",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/lazy_static.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "reentrant_init_deadlocks",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/reentrant_init_deadlocks.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regex",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/regex.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_synchronization",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/test_synchronization.rs",
+ "edition": "2021",
+ "required-features": [
+ "std"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "it",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/tests/it/main.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "alloc": [
+ "race"
+ ],
+ "atomic-polyfill": [
+ "critical-section"
+ ],
+ "critical-section": [
+ "dep:critical-section",
+ "portable-atomic"
+ ],
+ "default": [
+ "std"
+ ],
+ "parking_lot": [
+ "dep:parking_lot_core"
+ ],
+ "portable-atomic": [
+ "dep:portable-atomic"
+ ],
+ "race": [],
+ "std": [
+ "alloc"
+ ],
+ "unstable": []
+ },
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--generate-link-to-definition"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "Aleksey Kladov <aleksey.kladov@gmail.com>"
+ ],
+ "categories": [
+ "rust-patterns",
+ "memory-management"
+ ],
+ "keywords": [
+ "lazy",
+ "static"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/matklad/once_cell",
+ "homepage": null,
+ "documentation": "https://docs.rs/once_cell",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60"
+ },
+ {
+ "name": "proc-macro-rules",
+ "version": "0.4.0",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules@0.4.0",
+ "license": "Apache-2.0/MIT",
+ "license_file": null,
+ "description": "Emulate macro-rules pattern matching in procedural macros",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro-rules-macros",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.56",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.0.15",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "full",
+ "extra-traits"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.26",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "proc-macro-rules",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-rules-0.4.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "example"
+ ],
+ "crate_types": [
+ "proc-macro"
+ ],
+ "name": "macro_rules",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-rules-0.4.0/examples/macro_rules.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-rules-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Nick Cameron <nrc@ncameron.org>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/nrc/proc-macro-rules",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "proc-macro-rules-macros",
+ "version": "0.4.0",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules-macros@0.4.0",
+ "license": "Apache-2.0/MIT",
+ "license_file": null,
+ "description": "Emulate macro-rules pattern matching in procedural macros",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "once_cell",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.17.1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.56",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.26",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.0.15",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "full",
+ "extra-traits"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "proc-macro"
+ ],
+ "crate_types": [
+ "proc-macro"
+ ],
+ "name": "proc-macro-rules-macros",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-rules-macros-0.4.0/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ }
+ ],
+ "features": {},
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-rules-macros-0.4.0/Cargo.toml",
+ "metadata": null,
+ "publish": null,
+ "authors": [
+ "Nick Cameron <nrc@ncameron.org>"
+ ],
+ "categories": [],
+ "keywords": [],
+ "readme": "README.md",
+ "repository": "https://github.com/nrc/proc-macro-rules",
+ "homepage": null,
+ "documentation": null,
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": null
+ },
+ {
+ "name": "proc-macro2",
+ "version": "1.0.79",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "flate2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rayon",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tar",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "proc-macro2",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "comments",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/comments.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_fmt",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test_fmt.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "features",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/features.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "marker",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/marker.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test_size.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "custom-build"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "build-script-build",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/build.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "nightly": [],
+ "proc-macro": [],
+ "span-locations": []
+ },
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt"
+ ],
+ "rustdoc-args": [
+ "--cfg",
+ "procmacro2_semver_exempt",
+ "--cfg",
+ "doc_cfg",
+ "--generate-link-to-definition"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "span-locations"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>",
+ "Alex Crichton <alex@alexcrichton.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/proc-macro2",
+ "homepage": null,
+ "documentation": "https://docs.rs/proc-macro2",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "quote",
+ "version": "1.0.35",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Quasi-quoting macro quote!(...)",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.74",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "trybuild",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.66",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "diff"
+ ],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "quote",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/test.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compiletest",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/compiletest.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ }
+ ],
+ "features": {
+ "default": [
+ "proc-macro"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro"
+ ]
+ },
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustdoc-args": [
+ "--generate-link-to-definition"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/quote",
+ "homepage": null,
+ "documentation": "https://docs.rs/quote/",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.56"
+ },
+ {
+ "name": "syn",
+ "version": "2.0.57",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57",
+ "license": "MIT OR Apache-2.0",
+ "license_file": null,
+ "description": "Parser for Rust source code",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "proc-macro2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.75",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "quote",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1.0.35",
+ "kind": null,
+ "rename": null,
+ "optional": true,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-ident",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": null,
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "anyhow",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "automod",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "flate2",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "insta",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rayon",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ref-cast",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "reqwest",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.12",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "blocking"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rustversion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "syn-test-suite",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "tar",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4.16",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "termcolor",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "walkdir",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^2.3.2",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "syn",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/src/lib.rs",
+ "edition": "2021",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_stream",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_parse_stream.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_generics",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_generics.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_visibility",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_visibility.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_round_trip",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_round_trip.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_shebang",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_shebang.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_asyncness",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_asyncness.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ty",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_ty.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_pat",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_pat.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_derive_input",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_derive_input.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_item",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_item.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_stmt",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_stmt.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_quote",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_parse_quote.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "regression",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/regression.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_precedence",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_precedence.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_path",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_path.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_meta",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_meta.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_receiver",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_receiver.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_iterators",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_iterators.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_expr",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_expr.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_should_parse",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_should_parse.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_attribute",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_attribute.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "zzz_stable",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/zzz_stable.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_lit",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_lit.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_ident",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_ident.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_grouping",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_grouping.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_token_trees",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_token_trees.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_parse_buffer",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_parse_buffer.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "test_size",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/tests/test_size.rs",
+ "edition": "2021",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "rust",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/benches/rust.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "file",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/benches/file.rs",
+ "edition": "2021",
+ "required-features": [
+ "full",
+ "parsing"
+ ],
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {
+ "clone-impls": [],
+ "default": [
+ "derive",
+ "parsing",
+ "printing",
+ "clone-impls",
+ "proc-macro"
+ ],
+ "derive": [],
+ "extra-traits": [],
+ "fold": [],
+ "full": [],
+ "parsing": [],
+ "printing": [
+ "dep:quote"
+ ],
+ "proc-macro": [
+ "proc-macro2/proc-macro",
+ "quote?/proc-macro"
+ ],
+ "test": [
+ "syn-test-suite/all-features"
+ ],
+ "visit": [],
+ "visit-mut": []
+ },
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/syn-2.0.57/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "all-features": true,
+ "rustdoc-args": [
+ "--cfg",
+ "doc_cfg",
+ "--generate-link-to-definition"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ },
+ "playground": {
+ "features": [
+ "full",
+ "visit",
+ "visit-mut",
+ "fold",
+ "extra-traits"
+ ]
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "parser-implementations"
+ ],
+ "keywords": [
+ "macros",
+ "syn"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/syn",
+ "homepage": null,
+ "documentation": "https://docs.rs/syn",
+ "edition": "2021",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.60"
+ },
+ {
+ "name": "unicode-ident",
+ "version": "1.0.12",
+ "id": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12",
+ "license": "(MIT OR Apache-2.0) AND Unicode-DFS-2016",
+ "license_file": null,
+ "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "dependencies": [
+ {
+ "name": "criterion",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.5",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "fst",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "rand",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.8",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [
+ "small_rng"
+ ],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "roaring",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.10",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "ucd-trie",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.1",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": false,
+ "features": [],
+ "target": null,
+ "registry": null
+ },
+ {
+ "name": "unicode-xid",
+ "source": "registry+https://github.com/rust-lang/crates.io-index",
+ "req": "^0.2.4",
+ "kind": "dev",
+ "rename": null,
+ "optional": false,
+ "uses_default_features": true,
+ "features": [],
+ "target": null,
+ "registry": null
+ }
+ ],
+ "targets": [
+ {
+ "kind": [
+ "lib"
+ ],
+ "crate_types": [
+ "lib"
+ ],
+ "name": "unicode-ident",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/src/lib.rs",
+ "edition": "2018",
+ "doc": true,
+ "doctest": true,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "static_size",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/tests/static_size.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "test"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "compare",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/tests/compare.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": true
+ },
+ {
+ "kind": [
+ "bench"
+ ],
+ "crate_types": [
+ "bin"
+ ],
+ "name": "xid",
+ "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/benches/xid.rs",
+ "edition": "2018",
+ "doc": false,
+ "doctest": false,
+ "test": false
+ }
+ ],
+ "features": {},
+ "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/unicode-ident-1.0.12/Cargo.toml",
+ "metadata": {
+ "docs": {
+ "rs": {
+ "rustdoc-args": [
+ "--generate-link-to-definition"
+ ],
+ "targets": [
+ "x86_64-unknown-linux-gnu"
+ ]
+ }
+ }
+ },
+ "publish": null,
+ "authors": [
+ "David Tolnay <dtolnay@gmail.com>"
+ ],
+ "categories": [
+ "development-tools::procedural-macro-helpers",
+ "no-std",
+ "no-std::no-alloc"
+ ],
+ "keywords": [
+ "unicode",
+ "xid"
+ ],
+ "readme": "README.md",
+ "repository": "https://github.com/dtolnay/unicode-ident",
+ "homepage": null,
+ "documentation": "https://docs.rs/unicode-ident",
+ "edition": "2018",
+ "links": null,
+ "default_run": null,
+ "rust_version": "1.31"
+ }
+ ],
+ "workspace_members": [
+ "example-proc-macro-dep 0.1.0 (path+file://{TEMP_DIR}/example-proc-macro-dep)"
+ ],
+ "workspace_default_members": [
+ "example-proc-macro-dep 0.1.0 (path+file://{TEMP_DIR}/example-proc-macro-dep)"
+ ],
+ "resolve": {
+ "nodes": [
+ {
+ "id": "example-proc-macro-dep 0.1.0 (path+file://{TEMP_DIR}/example-proc-macro-dep)",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules@0.4.0"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro_rules",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules@0.4.0",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0",
+ "dependencies": [],
+ "deps": [],
+ "features": [
+ "alloc",
+ "default",
+ "race",
+ "std"
+ ]
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules@0.4.0",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules-macros@0.4.0",
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro_rules_macros",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules-macros@0.4.0",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "proc_macro2",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "syn",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-rules-macros@0.4.0",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0",
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57"
+ ],
+ "deps": [
+ {
+ "name": "once_cell",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "proc_macro2",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "syn",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": []
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12"
+ ],
+ "deps": [
+ {
+ "name": "unicode_ident",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "default",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.57",
+ "dependencies": [
+ "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12"
+ ],
+ "deps": [
+ {
+ "name": "proc_macro2",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "quote",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ },
+ {
+ "name": "unicode_ident",
+ "pkg": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12",
+ "dep_kinds": [
+ {
+ "kind": null,
+ "target": null
+ }
+ ]
+ }
+ ],
+ "features": [
+ "clone-impls",
+ "default",
+ "derive",
+ "extra-traits",
+ "full",
+ "parsing",
+ "printing",
+ "proc-macro"
+ ]
+ },
+ {
+ "id": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12",
+ "dependencies": [],
+ "deps": [],
+ "features": []
+ }
+ ],
+ "root": "example-proc-macro-dep 0.1.0 (path+file://{TEMP_DIR}/example-proc-macro-dep)"
+ },
+ "target_directory": "{TEMP_DIR}/example_proc_macro_dep/target",
+ "version": 1,
+ "workspace_root": "{TEMP_DIR}/example_proc_macro_dep",
+ "metadata": null
+}