Revert "[alpha.webkit.NoUnretainedMemberChecker] Recognize NS_REQUIRES_PROPER…"

This reverts commit 0123ee51ef3290466c6d743aac2932b23655aa04.
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
index 72199af..cd33476 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
@@ -236,7 +236,6 @@
 void RetainTypeChecker::visitTranslationUnitDecl(
     const TranslationUnitDecl *TUD) {
   IsARCEnabled = TUD->getLangOpts().ObjCAutoRefCount;
-  DefaultSynthProperties = TUD->getLangOpts().ObjCDefaultSynthProperties;
 }
 
 void RetainTypeChecker::visitTypedef(const TypedefDecl *TD) {
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
index 3c9560c..f9fcfe9 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
@@ -76,14 +76,12 @@
   llvm::DenseSet<const RecordType *> CFPointees;
   llvm::DenseSet<const Type *> RecordlessTypes;
   bool IsARCEnabled{false};
-  bool DefaultSynthProperties{true};
 
 public:
   void visitTranslationUnitDecl(const TranslationUnitDecl *);
   void visitTypedef(const TypedefDecl *);
   bool isUnretained(const QualType, bool ignoreARC = false);
   bool isARCEnabled() const { return IsARCEnabled; }
-  bool defaultSynthProperties() const { return DefaultSynthProperties; }
 };
 
 /// \returns true if \p Class is NS or CF objects AND not retained, false if
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
index 8faf6a2..b1350b9 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
@@ -28,7 +28,6 @@
 private:
   BugType Bug;
   mutable BugReporter *BR;
-  mutable llvm::DenseSet<const ObjCIvarDecl *> IvarDeclsToIgnore;
 
 protected:
   mutable std::optional<RetainTypeChecker> RTC;
@@ -37,8 +36,7 @@
   RawPtrRefMemberChecker(const char *description)
       : Bug(this, description, "WebKit coding guidelines") {}
 
-  virtual std::optional<bool> isUnsafePtr(QualType,
-                                          bool ignoreARC = false) const = 0;
+  virtual std::optional<bool> isUnsafePtr(QualType) const = 0;
   virtual const char *typeName() const = 0;
   virtual const char *invariant() const = 0;
 
@@ -140,8 +138,6 @@
       return;
     }
     if (auto *ID = dyn_cast<ObjCImplementationDecl>(CD)) {
-      for (auto *PropImpl : ID->property_impls())
-        visitPropImpl(CD, PropImpl);
       for (auto *Ivar : ID->ivars())
         visitIvarDecl(CD, Ivar);
       return;
@@ -152,10 +148,6 @@
                      const ObjCIvarDecl *Ivar) const {
     if (BR->getSourceManager().isInSystemHeader(Ivar->getLocation()))
       return;
-
-    if (IvarDeclsToIgnore.contains(Ivar))
-      return;
-
     auto QT = Ivar->getType();
     const Type *IvarType = QT.getTypePtrOrNull();
     if (!IvarType)
@@ -165,8 +157,6 @@
     if (!IsUnsafePtr || !*IsUnsafePtr)
       return;
 
-    IvarDeclsToIgnore.insert(Ivar);
-
     if (auto *MemberCXXRD = IvarType->getPointeeCXXRecordDecl())
       reportBug(Ivar, IvarType, MemberCXXRD, CD);
     else if (auto *ObjCDecl = getObjCDecl(IvarType))
@@ -177,15 +167,13 @@
                              const ObjCPropertyDecl *PD) const {
     if (BR->getSourceManager().isInSystemHeader(PD->getLocation()))
       return;
+    auto QT = PD->getType();
+    const Type *PropType = QT.getTypePtrOrNull();
+    if (!PropType)
+      return;
 
-    if (const ObjCInterfaceDecl *ID = dyn_cast<ObjCInterfaceDecl>(CD)) {
-      if (!RTC || !RTC->defaultSynthProperties() ||
-          ID->isObjCRequiresPropertyDefs())
-        return;
-    }
-
-    auto [IsUnsafe, PropType] = isPropImplUnsafePtr(PD);
-    if (!IsUnsafe)
+    auto IsUnsafePtr = isUnsafePtr(QT);
+    if (!IsUnsafePtr || !*IsUnsafePtr)
       return;
 
     if (auto *MemberCXXRD = PropType->getPointeeCXXRecordDecl())
@@ -194,47 +182,6 @@
       reportBug(PD, PropType, ObjCDecl, CD);
   }
 
-  void visitPropImpl(const ObjCContainerDecl *CD,
-                     const ObjCPropertyImplDecl *PID) const {
-    if (BR->getSourceManager().isInSystemHeader(PID->getLocation()))
-      return;
-
-    if (PID->getPropertyImplementation() != ObjCPropertyImplDecl::Synthesize)
-      return;
-
-    auto *PropDecl = PID->getPropertyDecl();
-    if (auto *IvarDecl = PID->getPropertyIvarDecl()) {
-      if (IvarDeclsToIgnore.contains(IvarDecl))
-        return;
-      IvarDeclsToIgnore.insert(IvarDecl);
-    }
-    auto [IsUnsafe, PropType] = isPropImplUnsafePtr(PropDecl);
-    if (!IsUnsafe)
-      return;
-
-    if (auto *MemberCXXRD = PropType->getPointeeCXXRecordDecl())
-      reportBug(PropDecl, PropType, MemberCXXRD, CD);
-    else if (auto *ObjCDecl = getObjCDecl(PropType))
-      reportBug(PropDecl, PropType, ObjCDecl, CD);
-  }
-
-  std::pair<bool, const Type *>
-  isPropImplUnsafePtr(const ObjCPropertyDecl *PD) const {
-    if (!PD)
-      return {false, nullptr};
-
-    auto QT = PD->getType();
-    const Type *PropType = QT.getTypePtrOrNull();
-    if (!PropType)
-      return {false, nullptr};
-
-    // "assign" property doesn't retain even under ARC so treat it as unsafe.
-    bool ignoreARC =
-        !PD->isReadOnly() && PD->getSetterKind() == ObjCPropertyDecl::Assign;
-    auto IsUnsafePtr = isUnsafePtr(QT, ignoreARC);
-    return {IsUnsafePtr && *IsUnsafePtr, PropType};
-  }
-
   bool shouldSkipDecl(const RecordDecl *RD) const {
     if (!RD->isThisDeclarationADefinition())
       return true;
@@ -325,7 +272,7 @@
       : RawPtrRefMemberChecker("Member variable is a raw-pointer/reference to "
                                "reference-countable type") {}
 
-  std::optional<bool> isUnsafePtr(QualType QT, bool) const final {
+  std::optional<bool> isUnsafePtr(QualType QT) const final {
     return isUncountedPtr(QT.getCanonicalType());
   }
 
@@ -342,7 +289,7 @@
       : RawPtrRefMemberChecker("Member variable is a raw-pointer/reference to "
                                "checked-pointer capable type") {}
 
-  std::optional<bool> isUnsafePtr(QualType QT, bool) const final {
+  std::optional<bool> isUnsafePtr(QualType QT) const final {
     return isUncheckedPtr(QT.getCanonicalType());
   }
 
@@ -362,8 +309,8 @@
     RTC = RetainTypeChecker();
   }
 
-  std::optional<bool> isUnsafePtr(QualType QT, bool ignoreARC) const final {
-    return RTC->isUnretained(QT, ignoreARC);
+  std::optional<bool> isUnsafePtr(QualType QT) const final {
+    return RTC->isUnretained(QT);
   }
 
   const char *typeName() const final { return "retainable type"; }
diff --git a/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h b/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
index 9e4356a..93e7dfd 100644
--- a/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
+++ b/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
@@ -22,7 +22,6 @@
 #define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
 #define CF_CONSUMED __attribute__((cf_consumed))
 #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained))
-#define NS_REQUIRES_PROPERTY_DEFINITIONS __attribute__((objc_requires_property_definitions))
 
 extern const CFAllocatorRef kCFAllocatorDefault;
 typedef struct _NSZone NSZone;
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
index 00e6e6e..3491bc9 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
@@ -64,39 +64,3 @@
   };
 
 } // namespace ptr_to_ptr_to_retained
-
-@interface AnotherObject : NSObject {
-  NSString *ns_string;
-  CFStringRef cf_string;
-  // expected-warning@-1{{Instance variable 'cf_string' in 'AnotherObject' is a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
-}
-@property(nonatomic, strong) NSString *prop_string1;
-@property(nonatomic, assign) NSString *prop_string2;
-// expected-warning@-1{{Property 'prop_string2' in 'AnotherObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning@-1{{Property 'prop_string3' in 'AnotherObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@property(nonatomic, readonly) NSString *prop_string4;
-@end
-
-NS_REQUIRES_PROPERTY_DEFINITIONS
-@interface NoSynthObject : NSObject {
-  NSString *ns_string;
-  CFStringRef cf_string;
-  // expected-warning@-1{{Instance variable 'cf_string' in 'NoSynthObject' is a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
-}
-@property(nonatomic, readonly, strong) NSString *prop_string1;
-@property(nonatomic, readonly, strong) NSString *prop_string2;
-@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning@-1{{Property 'prop_string3' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning@-1{{Property 'prop_string4' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@end
-
-@implementation NoSynthObject
-- (NSString *)prop_string1 {
-  return nil;
-}
-@synthesize prop_string2;
-@synthesize prop_string3;
-@synthesize prop_string4;
-@end
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
index 46f65df..0cb4c4a 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
@@ -99,28 +99,3 @@
 @property(nonatomic, strong) NSString *prop_string;
 // expected-warning@-1{{Property 'prop_string' in 'AnotherObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
 @end
-
-NS_REQUIRES_PROPERTY_DEFINITIONS
-@interface NoSynthObject : NSObject {
-  NSString *ns_string;
-  // expected-warning@-1{{Instance variable 'ns_string' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-  CFStringRef cf_string;
-  // expected-warning@-1{{Instance variable 'cf_string' in 'NoSynthObject' is a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
-}
-@property(nonatomic, readonly, strong) NSString *prop_string1;
-@property(nonatomic, readonly, strong) NSString *prop_string2;
-// expected-warning@-1{{Property 'prop_string2' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'}}
-@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning@-1{{Property 'prop_string3' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning@-1{{Property 'prop_string4' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
-@end
-
-@implementation NoSynthObject
-- (NSString *)prop_string1 {
-  return nil;
-}
-@synthesize prop_string2;
-@synthesize prop_string3;
-@synthesize prop_string4;
-@end