"""
return conf.lib.clang_CXXMethod_isVirtual(self)
- def is_scoped_enum(self):
- """Returns True if the cursor refers to a scoped enum declaration.
- """
- return conf.lib.clang_EnumDecl_isScoped(self)
-
def get_definition(self):
"""
If the cursor is a reference to a declaration or a declaration of
[Cursor],
bool),
- ("clang_EnumDecl_isScoped",
- [Cursor],
- bool),
-
("clang_defaultDiagnosticDisplayOptions",
[],
c_uint),
assert foo.is_virtual_method()
assert not bar.is_virtual_method()
-def test_is_scoped_enum():
- """Ensure Cursor.is_scoped_enum works."""
- source = 'class X {}; enum RegularEnum {}; enum class ScopedEnum {};'
- tu = get_tu(source, lang='cpp')
-
- cls = get_cursor(tu, 'X')
- regular_enum = get_cursor(tu, 'RegularEnum')
- scoped_enum = get_cursor(tu, 'ScopedEnum')
- assert cls is not None
- assert regular_enum is not None
- assert scoped_enum is not None
-
- assert not cls.is_scoped_enum()
- assert not regular_enum.is_scoped_enum()
- assert scoped_enum.is_scoped_enum()
-
def test_underlying_type():
tu = get_tu('typedef int foo;')
typedef = get_cursor(tu, 'foo')
*/
CINDEX_LINKAGE unsigned clang_CXXMethod_isVirtual(CXCursor C);
-/**
- * \brief Determine if an enum declaration refers to a scoped enum.
- */
-CINDEX_LINKAGE unsigned clang_EnumDecl_isScoped(CXCursor C);
-
/**
* \brief Determine if a C++ member function or member function template is
* declared 'const'.
auto b = a;
}
-enum RegularEnum {};
-
-enum class ScopedEnum {};
-
// RUN: c-index-test -test-print-type-declaration -std=c++11 %s | FileCheck %s
// CHECK: VarDecl=a:6:8 (Definition) [typedeclaration=Test] [typekind=Record]
// CHECK: VarDecl=b:7:8 (Definition) [typedeclaration=Test] [typekind=Record]
-// CHECK: EnumDecl=RegularEnum:10:6 (Definition) [typedeclaration=RegularEnum] [typekind=Enum]
-// CHECK: EnumDecl=ScopedEnum:12:12 (Definition) (scoped) [typedeclaration=ScopedEnum] [typekind=Enum]
-
printf(" (const)");
if (clang_CXXMethod_isPureVirtual(Cursor))
printf(" (pure)");
- if (clang_EnumDecl_isScoped(Cursor))
- printf(" (scoped)");
if (clang_Cursor_isVariadic(Cursor))
printf(" (variadic)");
if (clang_Cursor_isObjCOptional(Cursor))
return (Method && Method->isVirtual()) ? 1 : 0;
}
-unsigned clang_EnumDecl_isScoped(CXCursor C) {
- if (!clang_isDeclaration(C.kind))
- return 0;
-
- const Decl *D = cxcursor::getCursorDecl(C);
- auto *Enum = dyn_cast_or_null<EnumDecl>(D);
- return (Enum && Enum->isScoped()) ? 1 : 0;
-}
-
//===----------------------------------------------------------------------===//
// Attribute introspection.
//===----------------------------------------------------------------------===//
clang_CXXMethod_isPureVirtual
clang_CXXMethod_isStatic
clang_CXXMethod_isVirtual
-clang_EnumDecl_isScoped
clang_Cursor_getArgument
clang_Cursor_getNumTemplateArguments
clang_Cursor_getTemplateArgumentKind