summaryrefslogtreecommitdiffstats
path: root/vendor/darling-0.14.4/tests/custom_bound.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/darling-0.14.4/tests/custom_bound.rs')
-rw-r--r--vendor/darling-0.14.4/tests/custom_bound.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/vendor/darling-0.14.4/tests/custom_bound.rs b/vendor/darling-0.14.4/tests/custom_bound.rs
new file mode 100644
index 000000000..312f14780
--- /dev/null
+++ b/vendor/darling-0.14.4/tests/custom_bound.rs
@@ -0,0 +1,25 @@
+#![allow(dead_code)]
+
+use std::ops::Add;
+
+use darling::{FromDeriveInput, FromMeta};
+
+#[derive(Debug, Clone, FromMeta)]
+#[darling(bound = "T: FromMeta + Add")]
+struct Wrapper<T>(pub T);
+
+impl<T: Add> Add for Wrapper<T> {
+ type Output = Wrapper<<T as Add>::Output>;
+ fn add(self, rhs: Self) -> Wrapper<<T as Add>::Output> {
+ Wrapper(self.0 + rhs.0)
+ }
+}
+
+#[derive(Debug, FromDeriveInput)]
+#[darling(attributes(hello), bound = "Wrapper<T>: Add, T: FromMeta")]
+struct Foo<T> {
+ lorem: Wrapper<T>,
+}
+
+#[test]
+fn expansion() {}