File tree Expand file tree Collapse file tree 3 files changed +37
-34
lines changed Expand file tree Collapse file tree 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
4444ui/associated-consts/issue-63496.rs
4545ui/associated-consts/issue-69020-assoc-const-arith-overflow.rs
4646ui/associated-consts/issue-88599-ref-self.rs
47- ui/associated-consts/issue-93775.rs
4847ui/associated-consts/issue-93835.rs
4948ui/associated-inherent-types/issue-104260.rs
5049ui/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