// 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 // CHECK: struct SimpleSequence : CxxSequence { // CHECK: typealias Element = ConstIterator.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: typealias RawIterator = ConstIterator // CHECK: } // CHECK: struct SimpleSequenceWithOutOfLineEqualEqual : CxxSequence { // CHECK: typealias Element = ConstIteratorOutOfLineEq.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: typealias RawIterator = ConstIteratorOutOfLineEq // CHECK: } // CHECK: struct SimpleArrayWrapper : CxxSequence { // CHECK: typealias Element = UnsafePointer.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: typealias RawIterator = UnsafePointer // CHECK: } // CHECK: struct SimpleArrayWrapperNullableIterators : CxxSequence { // CHECK: typealias Element = Optional>.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: typealias RawIterator = UnsafePointer? // CHECK: } // CHECK: struct SimpleEmptySequence : CxxSequence { // CHECK: typealias Element = Optional>.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: typealias RawIterator = UnsafePointer? // CHECK: } // CHECK: struct HasMutatingBeginEnd : CxxSequence { // CHECK: typealias Element = ConstIterator.Pointee // CHECK: typealias Iterator = CxxIterator // CHECK: 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 __CxxTemplateInst20HasTemplatedIteratorIi12NoDefinitionIiEE { // CHECK-NOT: typealias Element // CHECK-NOT: typealias Iterator // CHECK-NOT: typealias RawIterator // CHECK: } // CHECK: typealias HasUninstantiatableIterator = __CxxTemplateInst20HasTemplatedIteratorIi12NoDefinitionIiEE