Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/macros.rs')
-rw-r--r--crates/hir-ty/src/tests/macros.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/hir-ty/src/tests/macros.rs b/crates/hir-ty/src/tests/macros.rs
index b0a9361f1c..2f75338f99 100644
--- a/crates/hir-ty/src/tests/macros.rs
+++ b/crates/hir-ty/src/tests/macros.rs
@@ -1373,3 +1373,34 @@ pub fn attr_macro() {}
"#,
);
}
+
+#[test]
+fn clone_with_type_bound() {
+ check_types(
+ r#"
+//- minicore: derive, clone, builtin_impls
+#[derive(Clone)]
+struct Float;
+
+trait TensorKind: Clone {
+ /// The primitive type of the tensor.
+ type Primitive: Clone;
+}
+
+impl TensorKind for Float {
+ type Primitive = f64;
+}
+
+#[derive(Clone)]
+struct Tensor<K = Float> where K: TensorKind
+{
+ primitive: K::Primitive,
+}
+
+fn foo(t: Tensor) {
+ let x = t.clone();
+ //^ Tensor<Float>
+}
+"#,
+ );
+}