This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +16
-5
lines changed
compiler/rustc_passes/src
tests/ui/consts/const-eval Expand file tree Collapse file tree 3 files changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -128,7 +128,10 @@ impl<'tcx> MarkSymbolVisitor<'tcx> {
128128 if let Some ( def_id) = self . typeck_results ( ) . type_dependent_def_id ( id) {
129129 self . check_def_id ( def_id) ;
130130 } else {
131- bug ! ( "no type-dependent def for method" ) ;
131+ assert ! (
132+ self . typeck_results( ) . tainted_by_errors. is_some( ) ,
133+ "no type-dependent def for method"
134+ ) ;
132135 }
133136 }
134137
Original file line number Diff line number Diff line change 1+ //! This test tests two things at once:
2+ //! 1. we error if a const evaluation hits the deny-by-default lint limit
3+ //! 2. we do not ICE on invalid follow-up code
4+
5+ // compile-flags: -Z tiny-const-eval-limit
6+
17fn main ( ) {
28 // Tests the Collatz conjecture with an incorrect base case (0 instead of 1).
39 // The value of `n` will loop indefinitely (4 - 2 - 1 - 4).
4- let _ = [ ( ) ; {
10+ let s = [ ( ) ; {
511 let mut n = 113383 ; // #20 in https://oeis.org/A006884
612 while n != 0 {
713 //~^ ERROR is taking a long time
814 n = if n % 2 == 0 { n / 2 } else { 3 * n + 1 } ;
915 }
1016 n
1117 } ] ;
18+
19+ s. nonexistent_method ( ) ;
1220}
Original file line number Diff line number Diff line change 11error: constant evaluation is taking a long time
2- --> $DIR/infinite_loop.rs:6 :9
2+ --> $DIR/infinite_loop.rs:12 :9
33 |
44LL | / while n != 0 {
55LL | |
@@ -10,9 +10,9 @@ LL | | }
1010 = note: this lint makes sure the compiler doesn't get stuck due to infinite loops in const eval.
1111 If your compilation actually takes a long time, you can safely allow the lint.
1212help: the constant being evaluated
13- --> $DIR/infinite_loop.rs:4 :18
13+ --> $DIR/infinite_loop.rs:10 :18
1414 |
15- LL | let _ = [(); {
15+ LL | let s = [(); {
1616 | __________________^
1717LL | | let mut n = 113383; // #20 in https://oeis.org/A006884
1818LL | | while n != 0 {
You can’t perform that action at this time.
0 commit comments