Skip to content

Commit c3e067b

Browse files
authored
Merge pull request #75804 from swiftlang/egorzhdan/static-inline
[cxx-interop] Print `inline` instead of `static inline` for template specializations
2 parents f275c27 + 11268dd commit c3e067b

11 files changed

+38
-38
lines changed

lib/PrintAsClang/PrintClangValueType.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ void ClangValueTypePrinter::printTypePrecedingGenericTraits(
586586

587587
if (printer.printNominalTypeOutsideMemberDeclTemplateSpecifiers(typeDecl))
588588
os << "template<>\n";
589-
os << "static inline const constexpr bool isUsableInGenericContext<";
589+
os << "inline const constexpr bool isUsableInGenericContext<";
590590
printer.printNominalTypeReference(typeDecl,
591591
/*moduleContext=*/nullptr);
592592
os << "> = ";
@@ -635,7 +635,7 @@ void ClangValueTypePrinter::printTypeGenericTraits(
635635
if (typeDecl->hasClangNode()) {
636636
// FIXME: share the code.
637637
os << "template<>\n";
638-
os << "static inline const constexpr bool isUsableInGenericContext<";
638+
os << "inline const constexpr bool isUsableInGenericContext<";
639639
printer.printClangTypeReference(typeDecl->getClangDecl());
640640
os << "> = true;\n";
641641
}
@@ -670,7 +670,7 @@ void ClangValueTypePrinter::printTypeGenericTraits(
670670

671671
if (typeDecl->hasClangNode()) {
672672
os << "template<>\n";
673-
os << "static inline const constexpr bool isSwiftBridgedCxxRecord<";
673+
os << "inline const constexpr bool isSwiftBridgedCxxRecord<";
674674
printer.printClangTypeReference(typeDecl->getClangDecl());
675675
os << "> = true;\n";
676676
}
@@ -679,7 +679,7 @@ void ClangValueTypePrinter::printTypeGenericTraits(
679679
assert(NTD && "not a nominal type?");
680680
if (printer.printNominalTypeOutsideMemberDeclTemplateSpecifiers(NTD))
681681
os << "template<>\n";
682-
os << "static inline const constexpr bool isValueType<";
682+
os << "inline const constexpr bool isValueType<";
683683
printer.printBaseName(typeDecl->getModuleContext());
684684
os << "::";
685685
printer.printNominalTypeReference(NTD, moduleContext);
@@ -690,7 +690,7 @@ void ClangValueTypePrinter::printTypeGenericTraits(
690690
assert(!isa<ClassDecl>(typeDecl) && !typeDecl->hasClangNode());
691691
if (printer.printNominalTypeOutsideMemberDeclTemplateSpecifiers(NTD))
692692
os << "template<>\n";
693-
os << "static inline const constexpr bool isOpaqueLayout<";
693+
os << "inline const constexpr bool isOpaqueLayout<";
694694
printer.printNominalTypeReference(NTD,
695695
/*moduleContext=*/nullptr);
696696
os << "> = true;\n";

lib/PrintAsClang/PrintSwiftToClangCoreScaffold.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ void printPrimitiveGenericTypeTraits(raw_ostream &os, ASTContext &astContext,
200200

201201
if (!isCForwardDefinition) {
202202
os << "template<>\n";
203-
os << "static inline const constexpr bool isUsableInGenericContext<"
203+
os << "inline const constexpr bool isUsableInGenericContext<"
204204
<< typeInfo.name << "> = true;\n\n";
205205
}
206206

test/Interop/CxxToSwiftToCxx/bridge-cxx-struct-back-to-cxx.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ public struct Strct {
217217
// CHECK-NEXT: #pragma clang diagnostic push
218218
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
219219
// CHECK-NEXT: template<>
220-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplateInt> = true;
220+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplateInt> = true;
221221
// CHECK-NEXT: template<>
222222
// CHECK-NEXT: struct TypeMetadataTrait<ns::NonTrivialTemplateInt> {
223223
// CHECK-NEXT: static SWIFT_INLINE_PRIVATE_HELPER void * _Nonnull getTypeMetadata() {
@@ -226,7 +226,7 @@ public struct Strct {
226226
// CHECK-NEXT: };
227227
// CHECK-NEXT: namespace _impl{
228228
// CHECK-NEXT: template<>
229-
// CHECK-NEXT: static inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplateInt> = true;
229+
// CHECK-NEXT: inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplateInt> = true;
230230
// CHECK-NEXT: } // namespace
231231
// CHECK-NEXT: #pragma clang diagnostic pop
232232
// CHECK-NEXT: } // namespace swift
@@ -256,7 +256,7 @@ public struct Strct {
256256
// CHECK-NEXT: #pragma clang diagnostic push
257257
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
258258
// CHECK-NEXT: template<>
259-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplateTrivial> = true;
259+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<ns::NonTrivialTemplateTrivial> = true;
260260
// CHECK-NEXT: template<>
261261
// CHECK-NEXT: struct TypeMetadataTrait<ns::NonTrivialTemplateTrivial> {
262262
// CHECK-NEXT: static SWIFT_INLINE_PRIVATE_HELPER void * _Nonnull getTypeMetadata() {
@@ -265,7 +265,7 @@ public struct Strct {
265265
// CHECK-NEXT: };
266266
// CHECK-NEXT: namespace _impl{
267267
// CHECK-NEXT: template<>
268-
// CHECK-NEXT: static inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplateTrivial> = true;
268+
// CHECK-NEXT: inline const constexpr bool isSwiftBridgedCxxRecord<ns::NonTrivialTemplateTrivial> = true;
269269
// CHECK-NEXT: } // namespace
270270
// CHECK-NEXT: #pragma clang diagnostic pop
271271
// CHECK-NEXT: } // namespace swift

test/Interop/SwiftToCxx/class/swift-class-in-cxx.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public final class ClassWithIntField {
3838
// CHECK-NEXT: #pragma clang diagnostic push
3939
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
4040
// CHECK-NEXT: template<>
41-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<Class::ClassWithIntField> = true;
41+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<Class::ClassWithIntField> = true;
4242
// CHECK-NEXT: #pragma clang diagnostic pop
4343
// CHECK-NEXT: } // namespace swift
4444

test/Interop/SwiftToCxx/core/swift-impl-defs-in-cxx-darwin64bit.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
// CHECK-NEXT: }
4141
// CHECK-NEXT: #endif
4242

43-
// CHECK: static inline const constexpr bool isUsableInGenericContext<void *> = true;
43+
// CHECK: inline const constexpr bool isUsableInGenericContext<void *> = true;
4444
// CHECK-EMPTY:
4545
// CHECK-NEXT: template<>
4646
// CHECK-NEXT: struct TypeMetadataTrait<void *> {
@@ -50,7 +50,7 @@
5050
// CHECK-NEXT: };
5151
// CHECK-EMPTY:
5252
// CHECK-NEXT: template<>
53-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<swift::Int> = true;
53+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<swift::Int> = true;
5454
// CHECK-EMPTY:
5555
// CHECK-NEXT: template<>
5656
// CHECK-NEXT: struct TypeMetadataTrait<swift::Int> {
@@ -60,7 +60,7 @@
6060
// CHECK-NEXT: };
6161
// CHECK-EMPTY:
6262
// CHECK-NEXT: template<>
63-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<swift::UInt> = true;
63+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<swift::UInt> = true;
6464
// CHECK-EMPTY:
6565
// CHECK-NEXT: template<>
6666
// CHECK-NEXT: struct TypeMetadataTrait<swift::UInt> {

test/Interop/SwiftToCxx/core/swift-impl-defs-in-cxx.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
// CHECK-NEXT: #pragma clang diagnostic push
105105
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
106106
// CHECK-NEXT: template<>
107-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<bool> = true;
107+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<bool> = true;
108108
// CHECK-EMPTY:
109109
// CHECK-NEXT: template<>
110110
// CHECK-NEXT: struct TypeMetadataTrait<bool> {
@@ -114,7 +114,7 @@
114114
// CHECK-NEXT: };
115115
// CHECK-EMPTY:
116116
// CHECK-NEXT: template<>
117-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<int8_t> = true;
117+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<int8_t> = true;
118118
// CHECK-EMPTY:
119119
// CHECK-NEXT: template<>
120120
// CHECK-NEXT: struct TypeMetadataTrait<int8_t> {
@@ -124,7 +124,7 @@
124124
// CHECK-NEXT: };
125125
// CHECK-EMPTY:
126126
// CHECK-NEXT: template<>
127-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<uint8_t> = true;
127+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<uint8_t> = true;
128128
// CHECK-EMPTY:
129129
// CHECK-NEXT: template<>
130130
// CHECK-NEXT: struct TypeMetadataTrait<uint8_t> {
@@ -134,7 +134,7 @@
134134
// CHECK-NEXT: };
135135
// CHECK-EMPTY:
136136
// CHECK-NEXT: template<>
137-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<int16_t> = true;
137+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<int16_t> = true;
138138
// CHECK-EMPTY:
139139
// CHECK-NEXT: template<>
140140
// CHECK-NEXT: struct TypeMetadataTrait<int16_t> {
@@ -144,7 +144,7 @@
144144
// CHECK-NEXT: };
145145
// CHECK-EMPTY:
146146
// CHECK-NEXT: template<>
147-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<uint16_t> = true;
147+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<uint16_t> = true;
148148
// CHECK-EMPTY:
149149
// CHECK-NEXT: template<>
150150
// CHECK-NEXT: struct TypeMetadataTrait<uint16_t> {
@@ -154,7 +154,7 @@
154154
// CHECK-NEXT: };
155155
// CHECK-EMPTY:
156156
// CHECK-NEXT: template<>
157-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<int32_t> = true;
157+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<int32_t> = true;
158158
// CHECK-EMPTY:
159159
// CHECK-NEXT: template<>
160160
// CHECK-NEXT: struct TypeMetadataTrait<int32_t> {
@@ -164,7 +164,7 @@
164164
// CHECK-NEXT: };
165165
// CHECK-EMPTY:
166166
// CHECK-NEXT: template<>
167-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<uint32_t> = true;
167+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<uint32_t> = true;
168168
// CHECK-EMPTY:
169169
// CHECK-NEXT: template<>
170170
// CHECK-NEXT: struct TypeMetadataTrait<uint32_t> {
@@ -174,7 +174,7 @@
174174
// CHECK-NEXT: };
175175
// CHECK-EMPTY:
176176
// CHECK-NEXT: template<>
177-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<int64_t> = true;
177+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<int64_t> = true;
178178
// CHECK-EMPTY:
179179
// CHECK-NEXT: template<>
180180
// CHECK-NEXT: struct TypeMetadataTrait<int64_t> {
@@ -184,7 +184,7 @@
184184
// CHECK-NEXT: };
185185
// CHECK-EMPTY:
186186
// CHECK-NEXT: template<>
187-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<uint64_t> = true;
187+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<uint64_t> = true;
188188
// CHECK-EMPTY:
189189
// CHECK-NEXT: template<>
190190
// CHECK-NEXT: struct TypeMetadataTrait<uint64_t> {
@@ -194,7 +194,7 @@
194194
// CHECK-NEXT: };
195195
// CHECK-EMPTY:
196196
// CHECK-NEXT: template<>
197-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<float> = true;
197+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<float> = true;
198198
// CHECK-EMPTY:
199199
// CHECK-NEXT: template<>
200200
// CHECK-NEXT: struct TypeMetadataTrait<float> {
@@ -204,7 +204,7 @@
204204
// CHECK-NEXT: };
205205
// CHECK-EMPTY:
206206
// CHECK-NEXT: template<>
207-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<double> = true;
207+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<double> = true;
208208
// CHECK-EMPTY:
209209
// CHECK-NEXT: template<>
210210
// CHECK-NEXT: struct TypeMetadataTrait<double> {
@@ -214,7 +214,7 @@
214214
// CHECK-NEXT: };
215215
// CHECK-EMPTY:
216216
// CHECK-NEXT: template<>
217-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<void *> = true;
217+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<void *> = true;
218218
// CHECK-EMPTY:
219219
// CHECK-NEXT: template<>
220220
// CHECK-NEXT: struct TypeMetadataTrait<void *> {

test/Interop/SwiftToCxx/generics/generic-enum-in-cxx.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public func inoutConcreteOpt(_ x: inout GenericOpt<UInt16>) {
102102
// CHECK-NEXT: #endif
103103
// CHECK-NEXT: class SWIFT_SYMBOL("s:8Generics17GenericCustomTypeO") GenericCustomType;
104104

105-
// CHECK: static inline const constexpr bool isOpaqueLayout<Generics::GenericCustomType<T_0_0>> = true;
105+
// CHECK: inline const constexpr bool isOpaqueLayout<Generics::GenericCustomType<T_0_0>> = true;
106106

107107
// CHECK: template<class T_0_0>
108108

@@ -116,7 +116,7 @@ public func inoutConcreteOpt(_ x: inout GenericOpt<UInt16>) {
116116
// CHECK-NEXT: #ifdef __cpp_concepts
117117
// CHECK-NEXT: requires swift::isUsableInGenericContext<T_0_0>
118118
// CHECK-NEXT: #endif
119-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<Generics::GenericOpt<T_0_0>> = isUsableInGenericContext<T_0_0>;
119+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<Generics::GenericOpt<T_0_0>> = isUsableInGenericContext<T_0_0>;
120120

121121
// CHECK: template<class T_0_0>
122122
// CHECK-NEXT: #ifdef __cpp_concepts

test/Interop/SwiftToCxx/generics/generic-struct-in-cxx.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public func inoutConcretePair(_ x: UInt16, _ y: inout GenericPair<UInt16, UInt16
210210
// CHECK-NEXT: #ifdef __cpp_concepts
211211
// CHECK-NEXT: requires swift::isUsableInGenericContext<T_0_0> && swift::isUsableInGenericContext<T_0_1>
212212
// CHECK-NEXT: #endif // __cpp_concepts
213-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<Generics::GenericPair<T_0_0, T_0_1>> = isUsableInGenericContext<T_0_0> && isUsableInGenericContext<T_0_1>;
213+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<Generics::GenericPair<T_0_0, T_0_1>> = isUsableInGenericContext<T_0_0> && isUsableInGenericContext<T_0_1>;
214214

215215
// CHECK: template<class T_0_0, class T_0_1>
216216
// CHECK-NEXT: #ifdef __cpp_concepts
@@ -284,12 +284,12 @@ public func inoutConcretePair(_ x: UInt16, _ y: inout GenericPair<UInt16, UInt16
284284
// CHECK-NEXT: #ifdef __cpp_concepts
285285
// CHECK-NEXT: requires swift::isUsableInGenericContext<T_0_0> && swift::isUsableInGenericContext<T_0_1>
286286
// CHECK-NEXT: #endif // __cpp_concepts
287-
// CHECK-NEXT: static inline const constexpr bool isValueType<Generics::GenericPair<T_0_0, T_0_1>> = true;
287+
// CHECK-NEXT: inline const constexpr bool isValueType<Generics::GenericPair<T_0_0, T_0_1>> = true;
288288
// CHECK-NEXT: template<class T_0_0, class T_0_1>
289289
// CHECK-NEXT: #ifdef __cpp_concepts
290290
// CHECK-NEXT: requires swift::isUsableInGenericContext<T_0_0> && swift::isUsableInGenericContext<T_0_1>
291291
// CHECK-NEXT: #endif // __cpp_concepts
292-
// CHECK-NEXT: static inline const constexpr bool isOpaqueLayout<Generics::GenericPair<T_0_0, T_0_1>> = true;
292+
// CHECK-NEXT: inline const constexpr bool isOpaqueLayout<Generics::GenericPair<T_0_0, T_0_1>> = true;
293293
// CHECK-NEXT: template<class T_0_0, class T_0_1>
294294
// CHECK-NEXT: #ifdef __cpp_concepts
295295
// CHECK-NEXT: requires swift::isUsableInGenericContext<T_0_0> && swift::isUsableInGenericContext<T_0_1>

test/Interop/SwiftToCxx/generics/generic-type-traits-fwd.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public struct LaterGeneric<T> {
3131
// CHECK: class SWIFT_SYMBOL("s:8Generics12LaterGenericV") LaterGeneric;
3232

3333
// CHECK: class SWIFT_SYMBOL("s:8Generics16ComesFirstStructV") ComesFirstStruct;
34-
// CHECK: static inline const constexpr bool isUsableInGenericContext<Generics::ComesFirstStruct> = true;
34+
// CHECK: inline const constexpr bool isUsableInGenericContext<Generics::ComesFirstStruct> = true;
3535

3636
// CHECK: class SWIFT_SYMBOL("s:8Generics14ComesFirstEnumO") ComesFirstEnum;
37-
// CHECK: static inline const constexpr bool isUsableInGenericContext<Generics::ComesFirstEnum> = true;
37+
// CHECK: inline const constexpr bool isUsableInGenericContext<Generics::ComesFirstEnum> = true;
3838

3939
// CHECK: class SWIFT_SYMBOL("s:8Generics14ComesFirstEnumO") ComesFirstEnum final {
4040
// CHECK: LaterGeneric<ComesFirstEnum> returnsLaterOpt() const SWIFT_SYMBOL("s:8Generics14ComesFirstEnumO15returnsLaterOptAA0F7GenericVyACGyF");

test/Interop/SwiftToCxx/structs/resilient-struct-in-cxx.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public struct FirstSmallStruct {
3030
// CHECK: class SWIFT_SYMBOL("s:7Structs16FirstSmallStructV") FirstSmallStruct;
3131

3232
// CHECK: template<>
33-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<Structs::FirstSmallStruct> = true;
33+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<Structs::FirstSmallStruct> = true;
3434

3535
// CHECK: class SWIFT_SYMBOL("s:7Structs16FirstSmallStructV") FirstSmallStruct final {
3636
// CHECK-NEXT: public:
@@ -91,9 +91,9 @@ public struct FirstSmallStruct {
9191
// CHECK-NEXT: };
9292
// CHECK-NEXT: namespace _impl{
9393
// CHECK-NEXT: template<>
94-
// CHECK-NEXT: static inline const constexpr bool isValueType<Structs::FirstSmallStruct> = true;
94+
// CHECK-NEXT: inline const constexpr bool isValueType<Structs::FirstSmallStruct> = true;
9595
// CHECK-NEXT: template<>
96-
// CHECK-NEXT: static inline const constexpr bool isOpaqueLayout<Structs::FirstSmallStruct> = true;
96+
// CHECK-NEXT: inline const constexpr bool isOpaqueLayout<Structs::FirstSmallStruct> = true;
9797
// CHECK-NEXT: template<>
9898
// CHECK-NEXT: struct implClassFor<Structs::FirstSmallStruct> { using type = Structs::_impl::_impl_FirstSmallStruct; };
9999
// CHECK-NEXT: } // namespace

test/Interop/SwiftToCxx/structs/swift-struct-in-cxx.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
// CHECK-NEXT: #pragma clang diagnostic push
1717
// CHECK-NEXT: #pragma clang diagnostic ignored "-Wc++17-extensions"
1818
// CHECK-NEXT: template<>
19-
// CHECK-NEXT: static inline const constexpr bool isUsableInGenericContext<Structs::StructWithIntField> = true;
19+
// CHECK-NEXT: inline const constexpr bool isUsableInGenericContext<Structs::StructWithIntField> = true;
2020
// CHECK-NEXT: #pragma clang diagnostic pop
2121
// CHECK-NEXT: } // namespace swift
2222

@@ -112,7 +112,7 @@
112112
// CHECK-NEXT: };
113113
// CHECK-NEXT: namespace _impl{
114114
// CHECK-NEXT: template<>
115-
// CHECK-NEXT: static inline const constexpr bool isValueType<Structs::StructWithIntField> = true;
115+
// CHECK-NEXT: inline const constexpr bool isValueType<Structs::StructWithIntField> = true;
116116
// CHECK-NEXT: template<>
117117
// CHECK-NEXT: struct implClassFor<Structs::StructWithIntField> { using type = Structs::_impl::_impl_StructWithIntField; };
118118
// CHECK-NEXT: } // namespace

0 commit comments

Comments
 (0)