diff options
Diffstat (limited to 'src/test/ui/associated-types/issue-67684.rs')
-rw-r--r-- | src/test/ui/associated-types/issue-67684.rs | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/src/test/ui/associated-types/issue-67684.rs b/src/test/ui/associated-types/issue-67684.rs deleted file mode 100644 index 49efe8a1b..000000000 --- a/src/test/ui/associated-types/issue-67684.rs +++ /dev/null @@ -1,62 +0,0 @@ -// check-pass - -#![allow(dead_code)] - -trait ParseError { - type StreamError; -} - -impl<T> ParseError for T { - type StreamError = (); -} - -trait Stream { - type Item; - type Error: ParseError; -} - -trait Parser -where - <Self as Parser>::PartialState: Default, -{ - type PartialState; - fn parse_mode(_: &Self, _: Self::PartialState) { - loop {} - } -} - -impl Stream for () { - type Item = (); - type Error = (); -} - -impl Parser for () { - type PartialState = (); -} - -struct AndThen<A, B>(core::marker::PhantomData<(A, B)>); - -impl<A, B> Parser for AndThen<A, B> -where - A: Stream, - B: Into<<A::Error as ParseError>::StreamError>, -{ - type PartialState = (); -} - -fn expr<A>() -> impl Parser -where - A: Stream<Error = <A as Stream>::Item>, -{ - AndThen::<A, ()>(core::marker::PhantomData) -} - -fn parse_mode_impl<A>() -where - <A as Stream>::Error: ParseError, - A: Stream<Error = <A as Stream>::Item>, -{ - Parser::parse_mode(&expr::<A>(), Default::default()) -} - -fn main() {} |