Skip to content

Commit 12d148b

Browse files
committed
test: add a test for demangle moved type names during runtime
1 parent 1ebc78b commit 12d148b

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

test/Runtime/demangleToMetadata.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,5 +423,33 @@ DemangleToMetadataTests.test("Nested types in same-type-constrained extensions")
423423
// V !: P3 in InnerTEqualsConformsToP1
424424
}
425425

426+
@available(OSX 10.9, *)
427+
@_originallyDefinedIn(module: "foo", OSX 10.13)
428+
struct MovedS {
429+
struct Nested { }
430+
}
431+
432+
@available(OSX 10.9, *)
433+
@_originallyDefinedIn(module: "foo", OSX 10.13)
434+
enum MovedE { case e }
435+
436+
@available(OSX 10.9, *)
437+
@_originallyDefinedIn(module: "bar", OSX 10.13)
438+
class MovedC {}
439+
440+
DemangleToMetadataTests.test("Moved Symbols") {
441+
// Simple Struct
442+
expectEqual(type(of: MovedS()), _typeByName("3foo6MovedSV")!)
443+
444+
// Simple Enum
445+
expectEqual(type(of: MovedE.e), _typeByName("3foo6MovedEO")!)
446+
447+
// Nested struct
448+
expectEqual(type(of: MovedS.Nested()), _typeByName("3foo6MovedSV6NestedV")!)
449+
450+
// Simple Class
451+
expectEqual(type(of: MovedC()), _typeByName("3bar6MovedCC")!)
452+
}
453+
426454
runAllTests()
427455

0 commit comments

Comments
 (0)