diff --git a/test/ClangImporter/objc_override.swift b/test/ClangImporter/objc_override.swift index 797d2f00bf5..9de243011a3 100644 --- a/test/ClangImporter/objc_override.swift +++ b/test/ClangImporter/objc_override.swift @@ -110,7 +110,8 @@ class CallbackSubC : CallbackBase { // class MyHashableNSObject: NSObject { - override var hashValue: Int { // expected-error{{overriding non-open property outside of its defining module}} expected-error{{overriding non-@objc declarations from extensions is not supported}} + override var hashValue: Int { + // expected-error@-1 {{'NSObject.hashValue' is not overridable; did you mean to override 'NSObject.hash'?}} return 0 } } diff --git a/test/Migrator/fixit-NSObject-hashValue.swift b/test/Migrator/fixit-NSObject-hashValue.swift new file mode 100644 index 00000000000..2b77045d6b6 --- /dev/null +++ b/test/Migrator/fixit-NSObject-hashValue.swift @@ -0,0 +1,14 @@ +// RUN: %empty-directory(%t) +// RUN: not %target-swift-frontend -typecheck -update-code -primary-file %s -emit-migrated-file-path %t/fixit-NSObject-hashValue.result +// RUN: diff -u %s.expected %t/fixit-NSObject-hashValue.result +// RUN: %target-swift-frontend -typecheck %s.expected + +// REQUIRES: objc_interop + +import ObjectiveC + +class MyClass: NSObject { + override var hashValue: Int { + return 42 + } +} diff --git a/test/Migrator/fixit-NSObject-hashValue.swift.expected b/test/Migrator/fixit-NSObject-hashValue.swift.expected new file mode 100644 index 00000000000..e0fb5358869 --- /dev/null +++ b/test/Migrator/fixit-NSObject-hashValue.swift.expected @@ -0,0 +1,14 @@ +// RUN: %empty-directory(%t) +// RUN: not %target-swift-frontend -typecheck -update-code -primary-file %s -emit-migrated-file-path %t/fixit-NSObject-hashValue.result +// RUN: diff -u %s.expected %t/fixit-NSObject-hashValue.result +// RUN: %target-swift-frontend -typecheck %s.expected + +// REQUIRES: objc_interop + +import ObjectiveC + +class MyClass: NSObject { + override var hash: Int { + return 42 + } +} diff --git a/test/stdlib/NSObject-hashing.swift b/test/stdlib/NSObject-hashing.swift index 29d48fa0d2d..b865f4d1d59 100644 --- a/test/stdlib/NSObject-hashing.swift +++ b/test/stdlib/NSObject-hashing.swift @@ -6,10 +6,13 @@ import ObjectiveC class Foo: NSObject { - override var hashValue: Int { // expected-error {{overriding non-open property outside of its defining module}} expected-error {{overriding non-@objc declarations from extensions is not supported}} + override var hashValue: Int { + // expected-error@-1 {{'NSObject.hashValue' is not overridable; did you mean to override 'NSObject.hash'?}} return 0 } - override func hash(into hasher: inout Hasher) { // expected-error {{overriding non-open instance method outside of its defining module}} expected-error {{overriding declarations in extensions is not supported}} + override func hash(into hasher: inout Hasher) { + // expected-error@-1 {{overriding non-open instance method outside of its defining module}} + // expected-error@-2 {{overriding declarations in extensions is not supported}} } }