Files
swift-mirror/test/ClangImporter/objc_direct.swift
2022-11-17 17:05:45 -08:00

28 lines
1.1 KiB
Swift

// RUN: %target-swift-frontend-verify -typecheck %s -enable-objc-interop -import-objc-header %S/../Inputs/objc_direct.h
// REQUIRES: objc_interop
var something = Bar() as AnyObject
something.directProperty = 123 // expected-error {{value of type 'AnyObject' has no member 'directProperty'}}
let _ = something.directProperty // expected-error {{value of type 'AnyObject' has no member 'directProperty'}}
something.directProperty2 = 456 // expected-error {{value of type 'AnyObject' has no member 'directProperty2'}}
let _ = something.directProperty2 // expected-error {{value of type 'AnyObject' has no member 'directProperty2'}}
let _ = something.directMethod() // expected-error {{value of type 'AnyObject' has no member 'directMethod'}}
let _ = something.directMethod2() // expected-error {{value of type 'AnyObject' has no member 'directMethod2'}}
class Foo {
// Test that we can use a method with the same name as some `objc_direct` method.
@objc func directProtocolMethod() -> String {
"This is not a direct method."
}
}
var otherThing = Foo() as AnyObject
// We expect no error.
let _ = otherThing.directProtocolMethod()