Files
swift-mirror/test/ClangImporter/objc_missing_designated_init.swift
Henrik G. Olsson cbc0ec3b88 Add -verify-ignore-unrelated where necessary (NFC)
These are tests that fail in the next commit without this flag. This
does not add -verify-ignore-unrelated to all tests with -verify, only
the ones that would fail without it. This is NFC since this flag is
currently a no-op.
2025-10-04 14:19:52 -07:00

106 lines
6.4 KiB
Swift

// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -typecheck -I %S/Inputs/custom-modules %s -swift-version 4 -verify -verify-ignore-unrelated
import UnimportableMembers
import UnimportableMembersUser
class IncompleteInitSubclassImplicit : IncompleteDesignatedInitializers { // expected-note 6 {{incorrect labels for candidate}}
var myOneNewMember = 1
}
class IncompleteInitSubclass : IncompleteDesignatedInitializers {
override init(first: Int) {} // expected-note 3 {{incorrect labels for candidate}}
override init(second: Int) {} // expected-note 3 {{incorrect labels for candidate}}
}
class IncompleteConvenienceInitSubclass : IncompleteConvenienceInitializers {} // expected-note 2 {{incorrect labels for candidate}}
class IncompleteUnknownInitSubclass : IncompleteUnknownInitializers {} // expected-note 4 {{incorrect labels for candidate}}
class IncompleteInitCategorySubclassImplicit : IncompleteDesignatedInitializersWithCategory {} // expected-note 6 {{incorrect labels for candidate}}
class IncompleteInitCategorySubclass : IncompleteDesignatedInitializersWithCategory {
override init(first: Int) {} // expected-note 3 {{incorrect labels for candidate}}
override init(second: Int) {} // expected-note 3 {{incorrect labels for candidate}}
}
class DesignatedInitializerInAnotherModuleSubclass : DesignatedInitializerInAnotherModule {} // expected-note 9 {{incorrect labels for candidate}}
func testBaseClassesBehaveAsExpected() {
_ = IncompleteDesignatedInitializers(first: 0) // okay
_ = IncompleteDesignatedInitializers(second: 0) // okay
_ = IncompleteDesignatedInitializers(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteDesignatedInitializers(conveniently: 0) // okay
_ = IncompleteDesignatedInitializers(category: 0) // okay
_ = IncompleteConvenienceInitializers(first: 0) // okay
_ = IncompleteConvenienceInitializers(second: 0) // okay
_ = IncompleteConvenienceInitializers(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteConvenienceInitializers(conveniently: 0) // okay
_ = IncompleteConvenienceInitializers(category: 0) // okay
_ = IncompleteUnknownInitializers(first: 0) // okay
_ = IncompleteUnknownInitializers(second: 0) // okay
_ = IncompleteUnknownInitializers(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteUnknownInitializers(conveniently: 0) // okay
_ = IncompleteUnknownInitializers(category: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(first: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(second: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteDesignatedInitializersWithCategory(conveniently: 0) // okay
_ = IncompleteDesignatedInitializersWithCategory(category: 0) // okay
_ = DesignatedInitializerInAnotherModule(first: 0) // okay
_ = DesignatedInitializerInAnotherModule(second: 0) // okay
_ = DesignatedInitializerInAnotherModule(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = 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 {{no exact matches in call to initializer}}
_ = IncompleteInitSubclass(conveniently: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitSubclass(category: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitSubclassImplicit(first: 0) // okay
_ = IncompleteInitSubclassImplicit(second: 0) // okay
_ = IncompleteInitSubclassImplicit(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitSubclassImplicit(conveniently: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitSubclassImplicit(category: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteConvenienceInitSubclass(first: 0) // okay
_ = IncompleteConvenienceInitSubclass(second: 0) // okay
_ = IncompleteConvenienceInitSubclass(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteConvenienceInitSubclass(conveniently: 0) // okay
_ = IncompleteConvenienceInitSubclass(category: 0) // okay
_ = IncompleteUnknownInitSubclass(first: 0) // okay
_ = IncompleteUnknownInitSubclass(second: 0) // okay
_ = IncompleteUnknownInitSubclass(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteUnknownInitSubclass(conveniently: 0) // okay
_ = IncompleteUnknownInitSubclass(category: 0) // okay
_ = IncompleteInitCategorySubclass(first: 0) // okay
_ = IncompleteInitCategorySubclass(second: 0) // okay
_ = IncompleteInitCategorySubclass(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitCategorySubclass(conveniently: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitCategorySubclass(category: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitCategorySubclassImplicit(first: 0) // okay
_ = IncompleteInitCategorySubclassImplicit(second: 0) // okay
_ = IncompleteInitCategorySubclassImplicit(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitCategorySubclassImplicit(conveniently: 0) // expected-error {{no exact matches in call to initializer}}
_ = IncompleteInitCategorySubclassImplicit(category: 0) // expected-error {{no exact matches in call to initializer}}
_ = DesignatedInitializerInAnotherModuleSubclass(first: 0) // okay
_ = DesignatedInitializerInAnotherModuleSubclass(second: 0) // okay
_ = DesignatedInitializerInAnotherModuleSubclass(missing: 0) // expected-error {{no exact matches in call to initializer}}
_ = DesignatedInitializerInAnotherModuleSubclass(conveniently: 0) // expected-error {{no exact matches in call to initializer}}
_ = DesignatedInitializerInAnotherModuleSubclass(category: 0) // expected-error {{no exact matches in call to initializer}}
_ = DesignatedInitializerInAnotherModuleSubclass(fromOtherModule: 0) // okay
}