mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Add @weiznich's regression test
This commit is contained in:
parent
c431cd751f
commit
3fef3d8b76
43
src/test/ui/consts/issue-68264-overflow.rs
Normal file
43
src/test/ui/consts/issue-68264-overflow.rs
Normal file
@ -0,0 +1,43 @@
|
||||
// check-pass
|
||||
// compile-flags: --emit=mir,link
|
||||
// Regression test for issue #68264
|
||||
// Checks that we don't encounter overflow
|
||||
// when running const-prop on functions with
|
||||
// complicated bounds
|
||||
pub trait Query {}
|
||||
|
||||
pub trait AsQuery {
|
||||
type Query: Query;
|
||||
}
|
||||
pub trait Table: AsQuery + Sized {}
|
||||
|
||||
pub trait LimitDsl {
|
||||
type Output;
|
||||
}
|
||||
|
||||
pub(crate) trait LoadQuery<Conn, U>: RunQueryDsl<Conn> {}
|
||||
|
||||
impl<T: Query> AsQuery for T {
|
||||
type Query = Self;
|
||||
}
|
||||
|
||||
impl<T> LimitDsl for T
|
||||
where
|
||||
T: Table,
|
||||
T::Query: LimitDsl,
|
||||
{
|
||||
type Output = <T::Query as LimitDsl>::Output;
|
||||
}
|
||||
|
||||
pub(crate) trait RunQueryDsl<Conn>: Sized {
|
||||
fn first<U>(self, _conn: &Conn) -> U
|
||||
where
|
||||
Self: LimitDsl,
|
||||
Self::Output: LoadQuery<Conn, U>,
|
||||
{
|
||||
// Overflow is caused by this function body
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user