Files
swift-mirror/test/FixCode/fixits-apply-objc.swift.result
Pavel Yaskevich 0cd44a83a7 [ConstraintSystem] Don't record general contextual mismatch if there are restrictions present
If there are any conversion restrictions present while trying to repair
failures related to contextual type, let's give `simplifyRestrictedConstraintImpl`
a chance to run and fix the problem.

Resolves: rdar://problem/59773317
2020-03-02 11:07:31 -08:00

112 lines
2.6 KiB
Plaintext

// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -disable-objc-attr-requires-foundation-module -typecheck %s -emit-fixits-path %t.remap
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result
import ObjectiveC
// REQUIRES: objc_interop
@objc class Selectors {
func takeSel(_: Selector) {}
@objc func mySel() {}
func test() {
takeSel(#selector(self.mySel))
takeSel(#selector(self.mySel))
}
}
@objc class OtherClass {
func test(s: Selectors) {
s.takeSel(#selector(Selectors.mySel))
s.takeSel(#selector(Selectors.mySel))
}
}
@objc class Base {
@objc func baseSel() {}
}
@objc class Outer {
func takeSel(_: Selector) {}
@objc func outerSel() {}
@objc class Inner: Base {
func takeSel(_: Selector) {}
@objc func innerSel() {}
func test(s: Selectors, o: Outer) {
s.takeSel(#selector(Selectors.mySel))
s.takeSel(#selector(Selectors.mySel))
takeSel(#selector(self.innerSel))
takeSel(#selector(self.innerSel))
takeSel(#selector(self.baseSel))
takeSel(#selector(self.baseSel))
o.takeSel(#selector(Outer.outerSel))
o.takeSel(#selector(Outer.outerSel))
}
}
func test(s: Selectors, i: Inner) {
s.takeSel(#selector(Selectors.mySel))
s.takeSel(#selector(Selectors.mySel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Base.baseSel))
i.takeSel(#selector(Base.baseSel))
takeSel(#selector(self.outerSel))
takeSel(#selector(self.outerSel))
}
}
extension Outer {
func test2(s: Selectors, i: Inner) {
s.takeSel(#selector(Selectors.mySel))
s.takeSel(#selector(Selectors.mySel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Base.baseSel))
i.takeSel(#selector(Base.baseSel))
takeSel(#selector(self.outerSel))
takeSel(#selector(self.outerSel))
}
}
func freeTest(s: Selectors, o: Outer, i: Outer.Inner) {
s.takeSel(#selector(Selectors.mySel))
s.takeSel(#selector(Selectors.mySel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Inner.innerSel))
i.takeSel(#selector(Base.baseSel))
i.takeSel(#selector(Base.baseSel))
o.takeSel(#selector(Outer.outerSel))
o.takeSel(#selector(Outer.outerSel))
}
func foo(an : Any) {
let a1 : AnyObject
a1 = an as AnyObject
let a2 : AnyObject?
a2 = an as AnyObject
let a3 : AnyObject!
a3 = an as AnyObject
}
func foo1(_ an : Any) {
let obj: AnyObject = an as AnyObject
}
func foo2(_ messageData: Any?) -> AnyObject? {
return messageData as AnyObject
}