File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -65,4 +65,27 @@ struct HasForwardDeclaredTemplateChild {
65
65
66
66
// TODO: Nested class templates (SR-13853).
67
67
68
+ namespace NestedDeclIsAFirstForwardDeclaration {
69
+
70
+ struct ForwardDeclaresFriend {
71
+ friend struct ForwardDeclaredFriend ;
72
+ friend void takesFriend (struct ForwardDeclaredFriend f);
73
+ };
74
+
75
+ struct ForwardDeclaredFriend { };
76
+
77
+ inline void takesFriend (ForwardDeclaredFriend b) { }
78
+
79
+ struct HasNestedForwardDeclaration {
80
+ struct IsNestedForwardDeclaration ;
81
+ };
82
+
83
+ struct HasNestedForwardDeclaration ::IsNestedForwardDeclaration {
84
+ int a;
85
+ };
86
+
87
+ inline void takesHasNestedForwardDeclaration (HasNestedForwardDeclaration) { }
88
+
89
+ }
90
+
68
91
#endif // TEST_INTEROP_CXX_CLASS_INPUTS_NESTED_RECORDS_H
Original file line number Diff line number Diff line change 74
74
// CHECK: }
75
75
// CHECK: init()
76
76
// CHECK: }
77
+
78
+ // CHECK: extension NestedDeclIsAFirstForwardDeclaration {
79
+ // CHECK: struct ForwardDeclaresFriend {
80
+ // CHECK: init()
81
+ // CHECK: }
82
+ // CHECK: struct ForwardDeclaredFriend {
83
+ // CHECK: init()
84
+ // CHECK: }
85
+ // CHECK: static func takesFriend(_ b: NestedDeclIsAFirstForwardDeclaration.ForwardDeclaredFriend)
86
+ // CHECK: struct HasNestedForwardDeclaration {
87
+ // CHECK: struct IsNestedForwardDeclaration {
88
+ // CHECK: var a: Int32
89
+ // CHECK: init()
90
+ // CHECK: init(a: Int32)
91
+ // CHECK: }
92
+ // CHECK: init()
93
+ // CHECK: }
94
+ // CHECK: static func takesHasNestedForwardDeclaration(_: NestedDeclIsAFirstForwardDeclaration.HasNestedForwardDeclaration)
95
+ // CHECK: }
You can’t perform that action at this time.
0 commit comments