- //===- DeclObjCCommon.h - Classes for representing declarations -*- C++ -*-===// 
- // 
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
- // See https://llvm.org/LICENSE.txt for license information. 
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
- // 
- //===----------------------------------------------------------------------===// 
- // 
- //  This file contains common ObjC enums and classes used in AST and 
- //  Sema. 
- // 
- //===----------------------------------------------------------------------===// 
-   
- #ifndef LLVM_CLANG_AST_DECLOBJCCOMMON_H 
- #define LLVM_CLANG_AST_DECLOBJCCOMMON_H 
-   
- namespace clang { 
-   
- /// ObjCPropertyAttribute::Kind - list of property attributes. 
- /// Keep this list in sync with LLVM's Dwarf.h ApplePropertyAttributes.s 
- namespace ObjCPropertyAttribute { 
- enum Kind { 
-   kind_noattr = 0x00, 
-   kind_readonly = 0x01, 
-   kind_getter = 0x02, 
-   kind_assign = 0x04, 
-   kind_readwrite = 0x08, 
-   kind_retain = 0x10, 
-   kind_copy = 0x20, 
-   kind_nonatomic = 0x40, 
-   kind_setter = 0x80, 
-   kind_atomic = 0x100, 
-   kind_weak = 0x200, 
-   kind_strong = 0x400, 
-   kind_unsafe_unretained = 0x800, 
-   /// Indicates that the nullability of the type was spelled with a 
-   /// property attribute rather than a type qualifier. 
-   kind_nullability = 0x1000, 
-   kind_null_resettable = 0x2000, 
-   kind_class = 0x4000, 
-   kind_direct = 0x8000, 
-   // Adding a property should change NumObjCPropertyAttrsBits 
-   // Also, don't forget to update the Clang C API at CXObjCPropertyAttrKind and 
-   // clang_Cursor_getObjCPropertyAttributes. 
- }; 
- } // namespace ObjCPropertyAttribute::Kind 
-   
- enum { 
-   /// Number of bits fitting all the property attributes. 
-   NumObjCPropertyAttrsBits = 16 
- }; 
-   
- } // namespace clang 
-   
- #endif // LLVM_CLANG_AST_DECLOBJCCOMMON_H 
-