1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// RUN: %target-swift-ide-test -print-module -module-to-print=CustomSequence -source-filename=x -I %S/Inputs -enable-experimental-cxx-interop -module-cache-path %t | %FileCheck %s
// RUN: %target-swift-ide-test -print-module -module-to-print=CustomSequence -source-filename=x -I %S/Inputs -cxx-interoperability-mode=swift-6 -module-cache-path %t | %FileCheck %s
// RUN: %target-swift-ide-test -print-module -module-to-print=CustomSequence -source-filename=x -I %S/Inputs -cxx-interoperability-mode=upcoming-swift -module-cache-path %t | %FileCheck %s
// CHECK: struct SimpleSequence : CxxConvertibleToCollection {
// CHECK: typealias Element = ConstIterator.Pointee
// CHECK: typealias Iterator = CxxIterator<SimpleSequence>
// CHECK: typealias RawIterator = ConstIterator
// CHECK: }
// CHECK: struct SimpleSequenceWithOutOfLineEqualEqual : CxxConvertibleToCollection {
// CHECK: typealias Element = ConstIteratorOutOfLineEq.Pointee
// CHECK: typealias Iterator = CxxIterator<SimpleSequenceWithOutOfLineEqualEqual>
// CHECK: typealias RawIterator = ConstIteratorOutOfLineEq
// CHECK: }
// CHECK: struct SimpleArrayWrapperNullableIterators : CxxConvertibleToCollection {
// CHECK: typealias Element = Optional<UnsafePointer<Int32>>.Pointee
// CHECK: typealias Iterator = CxxIterator<SimpleArrayWrapperNullableIterators>
// CHECK: typealias RawIterator = UnsafePointer<Int32>?
// CHECK: }
// CHECK: struct SimpleEmptySequence : CxxConvertibleToCollection {
// CHECK: typealias Element = Optional<UnsafePointer<Int32>>.Pointee
// CHECK: typealias Iterator = CxxIterator<SimpleEmptySequence>
// CHECK: typealias RawIterator = UnsafePointer<Int32>?
// CHECK: }
// CHECK: struct HasMutatingBeginEnd {
// CHECK-NOT: typealias Element = ConstIterator.Pointee
// CHECK-NOT: typealias Iterator = CxxIterator<HasMutatingBeginEnd>
// CHECK-NOT: typealias RawIterator = ConstIterator
// CHECK: }
// CHECK: struct HasNoBeginMethod {
// CHECK-NOT: typealias Element
// CHECK-NOT: typealias Iterator
// CHECK-NOT: typealias RawIterator
// CHECK: }
// CHECK: struct HasNoEndMethod {
// CHECK-NOT: typealias Element
// CHECK-NOT: typealias Iterator
// CHECK-NOT: typealias RawIterator
// CHECK: }
// CHECK: struct HasBeginEndTypeMismatch {
// CHECK-NOT: typealias Element
// CHECK-NOT: typealias Iterator
// CHECK-NOT: typealias RawIterator
// CHECK: }
// CHECK: struct HasBeginEndReturnNonIterators {
// CHECK-NOT: typealias Element
// CHECK-NOT: typealias Iterator
// CHECK-NOT: typealias RawIterator
// CHECK: }
// CHECK: struct HasTemplatedIterator<CInt, NoDefinition<CInt>> {
// CHECK-NOT: typealias Element
// CHECK-NOT: typealias Iterator
// CHECK-NOT: typealias RawIterator
// CHECK: }
// CHECK: typealias HasUninstantiatableIterator = HasTemplatedIterator<CInt, NoDefinition<CInt>>
// CHECK: struct HasInputOutputConstIterator : CxxConvertibleToCollection {
// CHECK: typealias Element = InputOutputConstIterator.Pointee
// CHECK: typealias Iterator = CxxIterator<HasInputOutputConstIterator>
// CHECK: typealias RawIterator = HasInputOutputConstIterator.iterator
// CHECK: }
|