   @nonobjc final func objc_ext_objc_explicit_nonobjc(_: PlainStruct) { }
 }
 
-@objc class ObjC_Class1 : Hashable {
+@objc
+class ObjC_Class1 : Hashable {
   func hash(into hasher: inout Hasher) {}
 }
 

  @objc(renamedFoo)
  var foo: Int { get { return 3 } } // expected-note 2{{overridden declaration is here}}

  @objc func process(i: Int) -> Int { } // expected-note {{overriding '@objc' method 'process(i:)' here}}
}

class Sub1 : Super {

typealias BadBlock = @convention(block) (NotObjCEnum) -> () // expected-error{{'(NotObjCEnum) -> ()' is not representable in Objective-C, so it cannot be used with '@convention(block)'}}


@objc
class AccessControl {
  // CHECK: @objc func foo
  func foo() {}
  // CHECK: {{^}} private func bar
  private func bar() {}
  // CHECK: @objc private func baz
  @objc
  private func baz() {}
}

//===--- Ban @objc +load methods
