about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-05-08 23:02:30 +0000
committerbors <bors@rust-lang.org>2017-05-08 23:02:30 +0000
commitf1140a33176a5fb2e91e26ea3ae42a834dd9bfdf (patch)
tree34797e9c35707beed61b324b47d88c9dc182b17e /src/test
parent20de961226de41a18ca1d9b166c6bc607f3a597a (diff)
parent90af729a97e8266ffa4453f9941e90dae22f8728 (diff)
Auto merge of #41515 - eddyb:non-static-assoc-const, r=nikomatsakis
rustc: treat const bodies like fn bodies in middle::region.

Allows `T::ASSOC_CONST` to be used without a `T: 'static` bound.

cc @rust-lang/compiler @rust-lang/lang
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/associated-const-type-parameters.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/test/run-pass/associated-const-type-parameters.rs b/src/test/run-pass/associated-const-type-parameters.rs
index e3d1761dfff..b276589f0c4 100644
--- a/src/test/run-pass/associated-const-type-parameters.rs
+++ b/src/test/run-pass/associated-const-type-parameters.rs
@@ -27,6 +27,12 @@ impl Foo for Def {
     const X: i32 = 97;
 }
 
+struct Proxy<T>(T);
+
+impl<T: Foo> Foo for Proxy<T> {
+    const X: i32 = T::X;
+}
+
 fn sub<A: Foo, B: Foo>() -> i32 {
     A::X - B::X
 }
@@ -38,4 +44,7 @@ fn main() {
     assert_eq!(97, Def::get_x());
     assert_eq!(-86, sub::<Abc, Def>());
     assert_eq!(86, sub::<Def, Abc>());
+    assert_eq!(-86, sub::<Proxy<Abc>, Def>());
+    assert_eq!(-86, sub::<Abc, Proxy<Def>>());
+    assert_eq!(86, sub::<Proxy<Def>, Proxy<Abc>>());
 }