Skip to content

Commit 71a9065

Browse files
committed
Add (failing) test for nested types
1 parent e9a44d4 commit 71a9065

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import ClassTemplateNestedTypeForSwiftModule
2+
3+
public func receiveShipEngine(_ i: inout Ship<Bool>.Engine) {}
4+
5+
public func returnShipEngine() -> Ship<Bool>.Engine {
6+
return Ship<Bool>.Engine()
7+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#ifndef TEST_INTEROP_CXX_TEMPLATES_INPUTS_CLASS_TEMPLATE_NESTED_TYPE_FOR_SWIFT_MODULE_H
2+
#define TEST_INTEROP_CXX_TEMPLATES_INPUTS_CLASS_TEMPLATE_NESTED_TYPE_FOR_SWIFT_MODULE_H
3+
4+
template <class T> struct Ship {
5+
struct Engine {
6+
T power;
7+
};
8+
};
9+
10+
11+
#endif // TEST_INTEROP_CXX_TEMPLATES_INPUTS_CLASS_TEMPLATE_NESTED_TYPE_FOR_SWIFT_MODULE_H

test/Interop/Cxx/templates/Inputs/module.modulemap

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ module ClassTemplateInNamespaceForSwiftModule {
103103
requires cplusplus
104104
}
105105

106+
module ClassTemplateNestedTypeForSwiftModule {
107+
header "class-template-nested-type-for-swift-module.h"
108+
requires cplusplus
109+
}
110+
106111
module MemberTemplates {
107112
header "member-templates.h"
108113
requires cplusplus
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swiftxx-frontend -emit-module -o %t/SwiftClassTemplateNestedTypeModule.swiftmodule %S/Inputs/SwiftClassTemplateNestedTypeModule.swift -I %S/Inputs -enable-library-evolution -swift-version 5
3+
// RUN: %target-swift-ide-test -print-module -module-to-print=SwiftClassTemplateNestedTypeModule -I %t/ -source-filename=x -enable-cxx-interop | %FileCheck %s
4+
5+
// REQUIRES: SR-13261
6+
7+
// CHECK: import ClassTemplateNestedTypeForSwiftModule
8+
// CHECK: func receiveShipEngine(_ i: inout Space.__CxxTemplateInstN5Space4ShipIbEE)
9+
// CHECK: func returnShipEngine() -> Space.__CxxTemplateInstN5Space4ShipIbEE

0 commit comments

Comments
 (0)