File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ // This is a non-regression test about differences in scopes computed by NLLs and `-Zpolonius=next`
2+ // found during the crater run for PR #117593.
3+ //
4+ // Live loans were computed too early compared to some of the liveness data coming from later passes
5+ // than `liveness::trace`, on some specific CFGs shapes: a variable was dead during tracing but its
6+ // regions were marked live later, and live loans were not recomputed at this point.
7+
8+ // check-pass
9+ // revisions: nll polonius
10+ // [polonius] compile-flags: -Zpolonius=next
11+
12+ // minimized from wavefc-cli-3.0.0
13+ fn repro1 ( ) {
14+ let a = 0 ;
15+ let closure = || {
16+ let _b = a;
17+ } ;
18+
19+ let callback = if true { Some ( closure) } else { None } ;
20+ do_it ( callback) ;
21+ }
22+ fn do_it < F > ( _: Option < F > )
23+ where
24+ F : Fn ( ) ,
25+ {
26+ }
27+
28+ // minimized from simple-server-0.4.0
29+ fn repro2 ( ) {
30+ let mut a = & ( ) ;
31+ let s = S ( & mut a) ;
32+ let _ = if true { Some ( s) } else { None } ;
33+ }
34+ struct S < ' a > ( & ' a mut & ' a ( ) ) ;
35+
36+ // minimized from https://github.com/SHaaD94/AICup2022
37+ fn repro3 ( ) {
38+ let runner = ( ) ;
39+ let writer = debug_interface ( & runner) ;
40+ let _ = if true { Some ( writer) } else { None } ;
41+ }
42+ fn debug_interface ( _: & ( ) ) -> & mut dyn std:: io:: Write {
43+ unimplemented ! ( )
44+ }
45+
46+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments