[clang] AddObjCKeyValueCompletions - use castAs<> instead of getAs<> to avoid derefer...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 Mar 2022 15:15:08 +0000 (15:15 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 Mar 2022 16:16:01 +0000 (16:16 +0000)
The pointers are always dereferenced, so assert the cast is correct instead of returning nullptr

clang/lib/Sema/SemaCodeComplete.cpp

index 0c9bcf5..ba99f18 100644 (file)
@@ -9138,8 +9138,8 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
   if (IsInstanceMethod &&
       (ReturnType.isNull() ||
        (ReturnType->isObjCObjectPointerType() &&
-        ReturnType->getAs<ObjCObjectPointerType>()->getInterfaceDecl() &&
-        ReturnType->getAs<ObjCObjectPointerType>()
+        ReturnType->castAs<ObjCObjectPointerType>()->getInterfaceDecl() &&
+        ReturnType->castAs<ObjCObjectPointerType>()
                 ->getInterfaceDecl()
                 ->getName() == "NSEnumerator"))) {
     std::string SelectorName = (Twine("enumeratorOf") + UpperKey).str();