blob: 403589891c18ba7798fdfca94cffcd66b6df1d60 [file] [log] [blame]
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -typecheck -I %S/Inputs/custom-modules %s -swift-version 4 -verify
import UnimportableMembers
import UnimportableMembersUser
class IncompleteInitSubclassImplicit : IncompleteDesignatedInitializers {
var myOneNewMember = 1
}
class IncompleteInitSubclass : IncompleteDesignatedInitializers {
override init(first: Int) {}
override init(second: Int) {}
}
class IncompleteConvenienceInitSubclass : IncompleteConvenienceInitializers {}
class IncompleteUnknownInitSubclass : IncompleteUnknownInitializers {}
class IncompleteInitCategorySubclassImplicit : IncompleteDesignatedInitializersWithCategory {}
class IncompleteInitCategorySubclass : IncompleteDesignatedInitializersWithCategory {
override init(first: Int) {}
override init(second: Int) {}
}
class DesignatedInitializerInAnotherModuleSubclass : DesignatedInitializerInAnotherModule {}
func testBaseClassesBehaveAsExpected() {
_ = IncompleteDesignatedInitializers(first: 0) // okay
_ = IncompleteDesignatedInitializers(second: 0) // okay
_ = IncompleteDesignatedInitializers(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteDesignatedInitializers(conveniently: 0) // okay
_ = IncompleteDesignatedInitializers(category: 0) // okay
_ = IncompleteConvenienceInitializers(first: 0) // okay
_ = IncompleteConvenienceInitializers(second: 0) // okay
_ = IncompleteConvenienceInitializers(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteConvenienceInitializers(conveniently: 0) // okay
_ = IncompleteConvenienceInitializers(category: 0) // okay
_ = IncompleteUnknownInitializers(first: 0) // okay
_ = IncompleteUnknownInitializers(second: 0) // okay
_ = IncompleteUnknownInitializers(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteUnknownInitializers(conveniently: 0) // okay
_ = IncompleteUnknownInitializers(category: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(first: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(second: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteDesignatedInitializersWithCategory(conveniently: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(category: 0) // okay
_ = DesignatedInitializerInAnotherModule(first: 0) // okay
_ = DesignatedInitializerInAnotherModule(second: 0) // okay
_ = DesignatedInitializerInAnotherModule(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = DesignatedInitializerInAnotherModule(conveniently: 0) // okay
_ = DesignatedInitializerInAnotherModule(category: 0) // okay
_ = DesignatedInitializerInAnotherModule(fromOtherModule: 0) // okay
}
func testSubclasses() {
_ = IncompleteInitSubclass(first: 0) // okay
_ = IncompleteInitSubclass(second: 0) // okay
_ = IncompleteInitSubclass(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitSubclass(conveniently: 0) // expected-error {{argument labels '(conveniently:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitSubclass(category: 0) // expected-error {{argument labels '(category:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitSubclassImplicit(first: 0) // okay
_ = IncompleteInitSubclassImplicit(second: 0) // okay
_ = IncompleteInitSubclassImplicit(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitSubclassImplicit(conveniently: 0) // expected-error {{argument labels '(conveniently:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitSubclassImplicit(category: 0) // expected-error {{argument labels '(category:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteConvenienceInitSubclass(first: 0) // okay
_ = IncompleteConvenienceInitSubclass(second: 0) // okay
_ = IncompleteConvenienceInitSubclass(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteConvenienceInitSubclass(conveniently: 0) // okay
_ = IncompleteConvenienceInitSubclass(category: 0) // okay
_ = IncompleteUnknownInitSubclass(first: 0) // okay
_ = IncompleteUnknownInitSubclass(second: 0) // okay
_ = IncompleteUnknownInitSubclass(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteUnknownInitSubclass(conveniently: 0) // okay
_ = IncompleteUnknownInitSubclass(category: 0) // okay
_ = IncompleteInitCategorySubclass(first: 0) // okay
_ = IncompleteInitCategorySubclass(second: 0) // okay
_ = IncompleteInitCategorySubclass(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitCategorySubclass(conveniently: 0) // expected-error {{argument labels '(conveniently:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitCategorySubclass(category: 0) // expected-error {{argument labels '(category:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitCategorySubclassImplicit(first: 0) // okay
_ = IncompleteInitCategorySubclassImplicit(second: 0) // okay
_ = IncompleteInitCategorySubclassImplicit(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitCategorySubclassImplicit(conveniently: 0) // expected-error {{argument labels '(conveniently:)' do not match any available overloads}} expected-note {{overloads}}
_ = IncompleteInitCategorySubclassImplicit(category: 0) // expected-error {{argument labels '(category:)' do not match any available overloads}} expected-note {{overloads}}
_ = DesignatedInitializerInAnotherModuleSubclass(first: 0) // okay
_ = DesignatedInitializerInAnotherModuleSubclass(second: 0) // okay
_ = DesignatedInitializerInAnotherModuleSubclass(missing: 0) // expected-error {{argument labels '(missing:)' do not match any available overloads}} expected-note {{overloads}}
_ = DesignatedInitializerInAnotherModuleSubclass(conveniently: 0) // expected-error {{argument labels '(conveniently:)' do not match any available overloads}} expected-note {{overloads}}
_ = DesignatedInitializerInAnotherModuleSubclass(category: 0) // expected-error {{argument labels '(category:)' do not match any available overloads}} expected-note {{overloads}}
_ = DesignatedInitializerInAnotherModuleSubclass(fromOtherModule: 0) // okay
}