about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDeadbeef <ent3rm4n@gmail.com>2025-08-04 16:11:59 +0800
committerDeadbeef <ent3rm4n@gmail.com>2025-08-13 15:28:08 +0800
commit0d2f8aff1be821907a824e5bad705c9385570fdc (patch)
tree6a87a41e1a98e4611a0ab9b88506ba39cf936026
parent8d247472e5f9612b4bf9668de937ad9c373b891c (diff)
downloadrust-0d2f8aff1be821907a824e5bad705c9385570fdc.tar.gz
rust-0d2f8aff1be821907a824e5bad705c9385570fdc.zip
add test for trait alias projections
-rw-r--r--src/tools/rust-analyzer/crates/hir-ty/src/tests/trait_aliases.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/tests/trait_aliases.rs b/src/tools/rust-analyzer/crates/hir-ty/src/tests/trait_aliases.rs
new file mode 100644
index 00000000000..302ce550b85
--- /dev/null
+++ b/src/tools/rust-analyzer/crates/hir-ty/src/tests/trait_aliases.rs
@@ -0,0 +1,21 @@
+use crate::tests::check_types;
+
+#[test]
+fn projection() {
+    check_types(
+        r#"
+#![feature(trait_alias)]
+
+pub trait A {
+    type Output;
+}
+
+pub trait B = A<Output = u32>;
+
+pub fn a<T: B>(x: T::Output) {
+    x;
+//  ^ u32
+}
+"#,
+    );
+}