Repository: graphql-rust/juniper (language: rust)

Issue:
Can't compile juniper_actix project.
**Describe the bug**
While I m trying to build project I m getting below error
```rs
 no variant or associated item named `__Nonexhaustive` found for enum `syn::Type` in the current scope
   --> juniper_codegen/src/common/parse/mod.rs:199:18
```

**To Reproduce**
Steps to reproduce the behavior:
(code example preferred)
Clone the latest code and try `cargo build` in `juniper_actix` folder.

**Expected behavior**
A clear and concise description of what you expected to happen.
It should build without errors.

**Additional context**
Add any other context about the problem here.
Getting similar issue in project while pointing to git repo in cargo file. 


Discussion / hints:
UPDATE: This commit `4f3939075a9e6c0da8fa138591e657153f27764c` is working for me.
Looks like this might be caused by the `syn` 1.0.60 release, it just broke for me in a daily CI run that ran fine yesterday.

https://github.com/dtolnay/syn/commits/master
And it blocked my Custom Scalar implementations. As it is in latest code. I guess I have to disturb Juniper Gods now. 
@trevyn @LegNeato  and others. Need some help over here. 

Fix patch:
diff --git a/examples/basic_subscriptions/Cargo.toml b/examples/basic_subscriptions/Cargo.toml
index 26877d70a..bb5016e2e 100644
--- a/examples/basic_subscriptions/Cargo.toml
+++ b/examples/basic_subscriptions/Cargo.toml
@@ -13,5 +13,5 @@ serde = { version = "1.0", features = ["derive"] }
 serde_json = "1.0"
 tokio = { version = "0.2", features = ["rt-core", "macros", "stream"] }
 
-juniper = { git = "https://github.com/graphql-rust/juniper" }
-juniper_subscriptions = { git = "https://github.com/graphql-rust/juniper" }
+juniper = { path = "../../juniper" }
+juniper_subscriptions = { path = "../../juniper_subscriptions" }
diff --git a/examples/warp_async/Cargo.toml b/examples/warp_async/Cargo.toml
index 31f96c3b6..ce37b7502 100644
--- a/examples/warp_async/Cargo.toml
+++ b/examples/warp_async/Cargo.toml
@@ -6,8 +6,8 @@ publish = false
 authors = ["Christoph Herzog <chris@theduke.at>"]
 
 [dependencies]
-juniper = { git = "https://github.com/graphql-rust/juniper" }
-juniper_warp = { git = "https://github.com/graphql-rust/juniper" }
+juniper = { path = "../../juniper" }
+juniper_warp = { path = "../../juniper_warp" }
 
 env_logger = "0.8.1"
 futures = "0.3.1"
diff --git a/juniper_codegen/Cargo.toml b/juniper_codegen/Cargo.toml
index 6bb2ef439..b84866c04 100644
--- a/juniper_codegen/Cargo.toml
+++ b/juniper_codegen/Cargo.toml
@@ -21,7 +21,7 @@ proc-macro = true
 proc-macro-error = "1.0.2"
 proc-macro2 = "1.0.1"
 quote = "1.0.3"
-syn = { version = "1.0.3", features = ["extra-traits", "full", "parsing"], default-features = false }
+syn = { version = "1.0.60", features = ["extra-traits", "full", "parsing"], default-features = false }
 
 [dev-dependencies]
 derive_more = "0.99.7"
diff --git a/juniper_codegen/src/common/parse/mod.rs b/juniper_codegen/src/common/parse/mod.rs
index fce5f0cf2..c3ec54f7c 100644
--- a/juniper_codegen/src/common/parse/mod.rs
+++ b/juniper_codegen/src/common/parse/mod.rs
@@ -191,12 +191,15 @@ impl TypeExt for syn::Type {
             }
 
             // These types unlikely will be used as GraphQL types.
-            T::BareFn(_)
-            | T::Infer(_)
-            | T::Macro(_)
-            | T::Never(_)
-            | T::Verbatim(_)
-            | T::__Nonexhaustive => {}
+            T::BareFn(_) | T::Infer(_) | T::Macro(_) | T::Never(_) | T::Verbatim(_) => {}
+
+            // Following the syn idiom for exhaustive matching on Type
+            // https://github.com/dtolnay/syn/blob/master/src/ty.rs#L66-L88
+            #[cfg(test)]
+            T::__TestExhaustive(_) => unimplemented!(),
+
+            #[cfg(not(test))]
+            _ => {}
         }
     }
 }


Test patch: