diff options
Diffstat (limited to 'src/test/run-pass/issue-31597.rs')
| -rw-r--r-- | src/test/run-pass/issue-31597.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-31597.rs b/src/test/run-pass/issue-31597.rs index 132d476f9dc..9acd6384b75 100644 --- a/src/test/run-pass/issue-31597.rs +++ b/src/test/run-pass/issue-31597.rs @@ -20,4 +20,18 @@ impl Make for () { fn make() -> Self::Out {} } +// Also make sure we don't hit an ICE when the projection can't be known +fn f<T: Make>() -> <T as Make>::Out { loop {} } + +// ...and that it works with a blanket impl +trait Tr { + type Assoc; +} + +impl<T: Make> Tr for T { + type Assoc = (); +} + +fn g<T: Make>() -> <T as Tr>::Assoc { } + fn main() {} |
