File tree 3 files changed +37
-34
lines changed
3 files changed +37
-34
lines changed Original file line number Diff line number Diff line change @@ -44,7 +44,6 @@ ui/associated-consts/issue-58022.rs
44
44
ui/associated-consts/issue-63496.rs
45
45
ui/associated-consts/issue-69020-assoc-const-arith-overflow.rs
46
46
ui/associated-consts/issue-88599-ref-self.rs
47
- ui/associated-consts/issue-93775.rs
48
47
ui/associated-consts/issue-93835.rs
49
48
ui/associated-inherent-types/issue-104260.rs
50
49
ui/associated-inherent-types/issue-109071.rs
Original file line number Diff line number Diff line change
1
+ //! This test case is modified from <https://github.com/rust-lang/rust/issues/93775>.
2
+ //! The type printing involves recursive calls that lead to stack overflow.
3
+ //! If it no longer crashes, please increase the nested type levels
4
+ //! unless you are fixing this issue.
5
+ //@ known-bug: #93775
6
+
7
+ #![ recursion_limit = "2049" ]
8
+
9
+ use std:: marker:: PhantomData ;
10
+
11
+ struct Z ;
12
+ struct S < T > ( PhantomData < T > ) ;
13
+
14
+ type Nested4 < T > = S < S < S < S < T > > > > ;
15
+ type Nested16 < T > = Nested4 < Nested4 < Nested4 < Nested4 < T > > > > ;
16
+ type Nested64 < T > = Nested16 < Nested16 < Nested16 < Nested16 < T > > > > ;
17
+ type Nested256 < T > = Nested64 < Nested64 < Nested64 < Nested64 < T > > > > ;
18
+ type Nested1024 < T > = Nested256 < Nested256 < Nested256 < Nested256 < T > > > > ;
19
+ type Nested2048 < T > = Nested1024 < Nested1024 < T > > ;
20
+
21
+ type Nested = Nested2048 < Z > ;
22
+
23
+ trait AsNum {
24
+ const NUM : u32 ;
25
+ }
26
+
27
+ impl AsNum for Z {
28
+ const NUM : u32 = 0 ;
29
+ }
30
+
31
+ impl < T : AsNum > AsNum for S < T > {
32
+ const NUM : u32 = T :: NUM + 1 ;
33
+ }
34
+
35
+ fn main ( ) {
36
+ let _ = Nested :: NUM ;
37
+ }
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments