Files
swift-mirror/test/IDE/import_as_member_objc.swift
Doug Gregor 940af98e4a [Clang importer] Synthesize Element typealias for OptionSet types.
Rather than requiring associated type witness inference to go and
figure out the Element type from the other witnesses for imported
OptionSet types, synthesize the typealias directly in the
importer. This is a simplification and a performance optimization.
2017-04-13 15:49:34 -07:00

41 lines
1.6 KiB
Swift

// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -I %t -I %S/Inputs/custom-modules -print-module -source-filename %s -module-to-print=ImportAsMember.Class -always-argument-labels -skip-unavailable > %t.printed.Class.txt
// RUN: %FileCheck %s -check-prefix=PRINT-CLASS -strict-whitespace < %t.printed.Class.txt
// PRINT-CLASS-LABEL: class SomeClass : NSObject {
// PRINT-CLASS-NEXT: init()
// PRINT-CLASS-NEXT: }
// PRINT-CLASS-NEXT: extension SomeClass {
// PRINT-CLASS-NEXT: /*not inherited*/ init(value x: Double)
// PRINT-CLASS-NEXT: func applyOptions(_ options: SomeClass.Options)
// PRINT-CLASS-NEXT: struct Options : OptionSet {
// PRINT-CLASS-NEXT: init(rawValue rawValue: Int)
// PRINT-CLASS-NEXT: let rawValue: Int
// PRINT-CLASS-NEXT: typealias RawValue = Int
// PRINT-CLASS-NEXT: typealias Element = SomeClass
// PRINT-CLASS-NEXT: static var fuzzyDice: SomeClass.Options { get }
// PRINT-CLASS-NEXT: static var spoiler: SomeClass.Options { get }
// PRINT-CLASS-NEXT: }
// PRINT-CLASS-NEXT: }
// RUN: %target-typecheck-verify-swift -I %S/Inputs/custom-modules
// REQUIRES: objc_interop
import Foundation
import ImportAsMember.Class
import IAMError
// Errors
ErrorStruct.hasPrototype();
// Import into members of an imported, renamed class.
let someClassOpts: SomeClass.Options = .fuzzyDice
let someClass = SomeClass(value: 3.14159)
someClass.applyOptions(someClassOpts)
class SomeSub : UnavailableDefaultInitSub { }
// Handle default initializers.
let udi1 = UnavailableDefaultInit()
let udis1 = UnavailableDefaultInitSub()