diff options
| author | bors <bors@rust-lang.org> | 2017-05-08 23:02:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-05-08 23:02:30 +0000 |
| commit | f1140a33176a5fb2e91e26ea3ae42a834dd9bfdf (patch) | |
| tree | 34797e9c35707beed61b324b47d88c9dc182b17e /src/test | |
| parent | 20de961226de41a18ca1d9b166c6bc607f3a597a (diff) | |
| parent | 90af729a97e8266ffa4453f9941e90dae22f8728 (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.rs | 9 |
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>>()); } |
