File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ // check-pass
2+ // compile-flags: --emit=mir,link
3+ // Regression test for issue #68264
4+ // Checks that we don't encounter overflow
5+ // when running const-prop on functions with
6+ // complicated bounds
7+ pub trait Query { }
8+
9+ pub trait AsQuery {
10+ type Query : Query ;
11+ }
12+ pub trait Table : AsQuery + Sized { }
13+
14+ pub trait LimitDsl {
15+ type Output ;
16+ }
17+
18+ pub ( crate ) trait LoadQuery < Conn , U > : RunQueryDsl < Conn > { }
19+
20+ impl < T : Query > AsQuery for T {
21+ type Query = Self ;
22+ }
23+
24+ impl < T > LimitDsl for T
25+ where
26+ T : Table ,
27+ T :: Query : LimitDsl ,
28+ {
29+ type Output = <T :: Query as LimitDsl >:: Output ;
30+ }
31+
32+ pub ( crate ) trait RunQueryDsl < Conn > : Sized {
33+ fn first < U > ( self , _conn : & Conn ) -> U
34+ where
35+ Self : LimitDsl ,
36+ Self :: Output : LoadQuery < Conn , U > ,
37+ {
38+ // Overflow is caused by this function body
39+ unimplemented ! ( )
40+ }
41+ }
42+
43+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments