[clang] [libclang/python] Add strict typing to clang Python bindings (#76664) (PR #78114)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 30 09:39:55 PDT 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {darker}-->
:warning: Python code formatter, darker found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
darker --check --diff -r dcb4399f07180bcad4632f152225309ea70f0700...717c43a4c027681fa957ed35a365400c129ff0b1 clang/bindings/python/clang/cindex.py
``````````
</details>
<details>
<summary>
View the diff from darker here.
</summary>
``````````diff
--- cindex.py 2024-07-30 16:34:33.000000 +0000
+++ cindex.py 2024-07-30 16:39:28.320388 +0000
@@ -284,21 +284,21 @@
) -> SourceLocation:
"""
Retrieve the source location associated with a given file/line/column in
a particular translation unit.
"""
- return conf.lib.clang_getLocation(tu, file, line, column) # type: ignore [no-any-return]
+ return conf.lib.clang_getLocation(tu, file, line, column) # type: ignore [no-any-return]
@staticmethod
def from_offset(tu: TranslationUnit, file: File, offset: int) -> SourceLocation:
"""Retrieve a SourceLocation from a given character offset.
tu -- TranslationUnit file belongs to
file -- File instance to obtain offset from
offset -- Integer character offset within file
"""
- return conf.lib.clang_getLocationForOffset(tu, file, offset) # type: ignore [no-any-return]
+ return conf.lib.clang_getLocationForOffset(tu, file, offset) # type: ignore [no-any-return]
@property
def file(self) -> File | None:
"""Get the file represented by this source location."""
return self._get_instantiation()[0]
@@ -319,16 +319,16 @@
return self._get_instantiation()[3]
@property
def is_in_system_header(self) -> bool:
"""Returns true if the given source location is in a system header."""
- return conf.lib.clang_Location_isInSystemHeader(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Location_isInSystemHeader(self) # type: ignore [no-any-return]
def __eq__(self, other: object) -> bool:
if not isinstance(other, SourceLocation):
return False
- return conf.lib.clang_equalLocations(self, other) # type: ignore [no-any-return]
+ return conf.lib.clang_equalLocations(self, other) # type: ignore [no-any-return]
def __ne__(self, other: object) -> bool:
return not self.__eq__(other)
def __repr__(self) -> str:
@@ -357,32 +357,32 @@
# FIXME: Eliminate this and make normal constructor? Requires hiding ctypes
# object.
@staticmethod
def from_locations(start: SourceLocation, end: SourceLocation) -> SourceRange:
- return conf.lib.clang_getRange(start, end) # type: ignore [no-any-return]
+ return conf.lib.clang_getRange(start, end) # type: ignore [no-any-return]
@property
def start(self) -> SourceLocation:
"""
Return a SourceLocation representing the first character within a
source range.
"""
- return conf.lib.clang_getRangeStart(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getRangeStart(self) # type: ignore [no-any-return]
@property
def end(self) -> SourceLocation:
"""
Return a SourceLocation representing the last character within a
source range.
"""
- return conf.lib.clang_getRangeEnd(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getRangeEnd(self) # type: ignore [no-any-return]
def __eq__(self, other: object) -> bool:
if not isinstance(other, SourceRange):
return False
- return conf.lib.clang_equalRanges(self, other) # type: ignore [no-any-return]
+ return conf.lib.clang_equalRanges(self, other) # type: ignore [no-any-return]
def __ne__(self, other: object) -> bool:
return not self.__eq__(other)
def __contains__(self, other: object) -> bool:
@@ -441,19 +441,19 @@
def __del__(self) -> None:
conf.lib.clang_disposeDiagnostic(self)
@property
def severity(self) -> int:
- return conf.lib.clang_getDiagnosticSeverity(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticSeverity(self) # type: ignore [no-any-return]
@property
def location(self) -> SourceLocation:
- return conf.lib.clang_getDiagnosticLocation(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticLocation(self) # type: ignore [no-any-return]
@property
def spelling(self) -> str:
- return conf.lib.clang_getDiagnosticSpelling(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticSpelling(self) # type: ignore [no-any-return]
@property
def ranges(self) -> NoSliceSequence[SourceRange]:
class RangeIterator:
def __init__(self, diag: Diagnostic):
@@ -463,11 +463,11 @@
return int(conf.lib.clang_getDiagnosticNumRanges(self.diag))
def __getitem__(self, key: int) -> SourceRange:
if key >= len(self):
raise IndexError
- return conf.lib.clang_getDiagnosticRange(self.diag, key) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticRange(self.diag, key) # type: ignore [no-any-return]
return RangeIterator(self)
@property
def fixits(self) -> NoSliceSequence[FixIt]:
@@ -506,21 +506,21 @@
return ChildDiagnosticsIterator(self)
@property
def category_number(self) -> int:
"""The category number for this diagnostic or 0 if unavailable."""
- return conf.lib.clang_getDiagnosticCategory(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticCategory(self) # type: ignore [no-any-return]
@property
def category_name(self) -> str:
"""The string name of the category for this diagnostic."""
- return conf.lib.clang_getDiagnosticCategoryText(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticCategoryText(self) # type: ignore [no-any-return]
@property
def option(self) -> str:
"""The command-line option that enables this diagnostic."""
- return conf.lib.clang_getDiagnosticOption(self, None) # type: ignore [no-any-return]
+ return conf.lib.clang_getDiagnosticOption(self, None) # type: ignore [no-any-return]
@property
def disable_option(self) -> str:
"""The command-line option that disables this diagnostic."""
disable = _CXString()
@@ -536,11 +536,11 @@
"""
if options is None:
options = conf.lib.clang_defaultDiagnosticDisplayOptions()
if options & ~Diagnostic._FormatOptionsMask:
raise ValueError("Invalid format options")
- return conf.lib.clang_formatDiagnostic(self, options) # type: ignore [no-any-return]
+ return conf.lib.clang_formatDiagnostic(self, options) # type: ignore [no-any-return]
def __repr__(self) -> str:
return "<Diagnostic severity %r, location %r, spelling %r>" % (
self.severity,
self.location,
@@ -622,10 +622,11 @@
token._tu = tu
token._group = token_group
yield token
+
TEnum = TypeVar("TEnum", bound="BaseEnumeration")
### Cursor Kinds ###
class BaseEnumeration(Enum):
"""
@@ -673,44 +674,43 @@
"""Return all CursorKind enumeration instances."""
return list(CursorKind)
def is_declaration(self) -> bool:
"""Test if this is a declaration kind."""
- return conf.lib.clang_isDeclaration(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isDeclaration(self) # type: ignore [no-any-return]
def is_reference(self) -> bool:
"""Test if this is a reference kind."""
- return conf.lib.clang_isReference(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isReference(self) # type: ignore [no-any-return]
def is_expression(self) -> bool:
"""Test if this is an expression kind."""
- return conf.lib.clang_isExpression(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isExpression(self) # type: ignore [no-any-return]
def is_statement(self) -> bool:
"""Test if this is a statement kind."""
- return conf.lib.clang_isStatement(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isStatement(self) # type: ignore [no-any-return]
def is_attribute(self) -> bool:
"""Test if this is an attribute kind."""
- return conf.lib.clang_isAttribute(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isAttribute(self) # type: ignore [no-any-return]
def is_invalid(self) -> bool:
"""Test if this is an invalid kind."""
- return conf.lib.clang_isInvalid(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isInvalid(self) # type: ignore [no-any-return]
def is_translation_unit(self) -> bool:
"""Test if this is a translation unit kind."""
- return conf.lib.clang_isTranslationUnit(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isTranslationUnit(self) # type: ignore [no-any-return]
def is_preprocessing(self) -> bool:
"""Test if this is a preprocessing kind."""
- return conf.lib.clang_isPreprocessing(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isPreprocessing(self) # type: ignore [no-any-return]
def is_unexposed(self) -> bool:
"""Test if this is an unexposed kind."""
- return conf.lib.clang_isUnexposed(self) # type: ignore [no-any-return]
-
+ return conf.lib.clang_isUnexposed(self) # type: ignore [no-any-return]
###
# Declaration Kinds
# A declaration whose specific kind is not exposed via this interface.
@@ -1582,55 +1582,55 @@
return cursor
def __eq__(self, other: object) -> bool:
if not isinstance(other, Cursor):
return False
- return conf.lib.clang_equalCursors(self, other) # type: ignore [no-any-return]
+ return conf.lib.clang_equalCursors(self, other) # type: ignore [no-any-return]
def __ne__(self, other: object) -> bool:
return not self.__eq__(other)
def is_definition(self) -> bool:
"""
Returns true if the declaration pointed at by the cursor is also a
definition of that entity.
"""
- return conf.lib.clang_isCursorDefinition(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isCursorDefinition(self) # type: ignore [no-any-return]
def is_const_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared 'const'.
"""
- return conf.lib.clang_CXXMethod_isConst(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isConst(self) # type: ignore [no-any-return]
def is_converting_constructor(self) -> bool:
"""Returns True if the cursor refers to a C++ converting constructor."""
- return conf.lib.clang_CXXConstructor_isConvertingConstructor(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXConstructor_isConvertingConstructor(self) # type: ignore [no-any-return]
def is_copy_constructor(self) -> bool:
"""Returns True if the cursor refers to a C++ copy constructor."""
- return conf.lib.clang_CXXConstructor_isCopyConstructor(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXConstructor_isCopyConstructor(self) # type: ignore [no-any-return]
def is_default_constructor(self) -> bool:
"""Returns True if the cursor refers to a C++ default constructor."""
- return conf.lib.clang_CXXConstructor_isDefaultConstructor(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXConstructor_isDefaultConstructor(self) # type: ignore [no-any-return]
def is_move_constructor(self) -> bool:
"""Returns True if the cursor refers to a C++ move constructor."""
- return conf.lib.clang_CXXConstructor_isMoveConstructor(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXConstructor_isMoveConstructor(self) # type: ignore [no-any-return]
def is_default_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared '= default'.
"""
- return conf.lib.clang_CXXMethod_isDefaulted(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isDefaulted(self) # type: ignore [no-any-return]
def is_deleted_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared '= delete'.
"""
- return conf.lib.clang_CXXMethod_isDeleted(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isDeleted(self) # type: ignore [no-any-return]
def is_copy_assignment_operator_method(self) -> bool:
"""Returnrs True if the cursor refers to a copy-assignment operator.
A copy-assignment operator `X::operator=` is a non-static,
@@ -1651,11 +1651,11 @@
bool operator=(const int&);
};
Is not.
"""
- return conf.lib.clang_CXXMethod_isCopyAssignmentOperator(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isCopyAssignmentOperator(self) # type: ignore [no-any-return]
def is_move_assignment_operator_method(self) -> bool:
"""Returnrs True if the cursor refers to a move-assignment operator.
A move-assignment operator `X::operator=` is a non-static,
@@ -1676,11 +1676,11 @@
bool operator=(const int&&);
};
Is not.
"""
- return conf.lib.clang_CXXMethod_isMoveAssignmentOperator(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isMoveAssignmentOperator(self) # type: ignore [no-any-return]
def is_explicit_method(self) -> bool:
"""Determines if a C++ constructor or conversion function is
explicit, returning 1 if such is the case and 0 otherwise.
@@ -1721,72 +1721,72 @@
}
This method will return 0 for the constructor and 1 for
the conversion function.
"""
- return conf.lib.clang_CXXMethod_isExplicit(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isExplicit(self) # type: ignore [no-any-return]
def is_mutable_field(self) -> bool:
"""Returns True if the cursor refers to a C++ field that is declared
'mutable'.
"""
- return conf.lib.clang_CXXField_isMutable(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXField_isMutable(self) # type: ignore [no-any-return]
def is_pure_virtual_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared pure virtual.
"""
- return conf.lib.clang_CXXMethod_isPureVirtual(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isPureVirtual(self) # type: ignore [no-any-return]
def is_static_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared 'static'.
"""
- return conf.lib.clang_CXXMethod_isStatic(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isStatic(self) # type: ignore [no-any-return]
def is_virtual_method(self) -> bool:
"""Returns True if the cursor refers to a C++ member function or member
function template that is declared 'virtual'.
"""
- return conf.lib.clang_CXXMethod_isVirtual(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXMethod_isVirtual(self) # type: ignore [no-any-return]
def is_abstract_record(self) -> bool:
"""Returns True if the cursor refers to a C++ record declaration
that has pure virtual member functions.
"""
- return conf.lib.clang_CXXRecord_isAbstract(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXXRecord_isAbstract(self) # type: ignore [no-any-return]
def is_scoped_enum(self) -> bool:
"""Returns True if the cursor refers to a scoped enum declaration."""
- return conf.lib.clang_EnumDecl_isScoped(self) # type: ignore [no-any-return]
+ return conf.lib.clang_EnumDecl_isScoped(self) # type: ignore [no-any-return]
def get_definition(self) -> Cursor:
"""
If the cursor is a reference to a declaration or a declaration of
some entity, return a cursor that points to the definition of that
entity.
"""
# TODO: Should probably check that this is either a reference or
# declaration prior to issuing the lookup.
- return conf.lib.clang_getCursorDefinition(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getCursorDefinition(self) # type: ignore [no-any-return]
def get_usr(self) -> str:
"""Return the Unified Symbol Resolution (USR) for the entity referenced
by the given cursor.
A Unified Symbol Resolution (USR) is a string that identifies a
particular entity (function, class, variable, etc.) within a
program. USRs can be compared across translation units to determine,
e.g., when references in one translation refer to an entity defined in
another translation unit."""
- return conf.lib.clang_getCursorUSR(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getCursorUSR(self) # type: ignore [no-any-return]
def get_included_file(self) -> File:
"""Returns the File that is included by the current inclusion cursor."""
assert self.kind == CursorKind.INCLUSION_DIRECTIVE
- return conf.lib.clang_getIncludedFile(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getIncludedFile(self) # type: ignore [no-any-return]
@property
def kind(self) -> CursorKind:
"""Return the kind of this cursor."""
return CursorKind.from_id(self._kind_id)
@@ -1956,11 +1956,13 @@
Returns a Type for the typedef this cursor is a declaration for. If
the current cursor is not a typedef, this raises.
"""
if not hasattr(self, "_underlying_type"):
assert self.kind.is_declaration()
- self._underlying_type: Type = conf.lib.clang_getTypedefDeclUnderlyingType(self)
+ self._underlying_type: Type = conf.lib.clang_getTypedefDeclUnderlyingType(
+ self
+ )
return self._underlying_type
@property
def enum_type(self) -> Type:
@@ -1994,11 +1996,13 @@
TypeKind.UINT,
TypeKind.ULONG,
TypeKind.ULONGLONG,
TypeKind.UINT128,
):
- self._enum_value: int = conf.lib.clang_getEnumConstantDeclUnsignedValue(self)
+ self._enum_value: int = conf.lib.clang_getEnumConstantDeclUnsignedValue(
+ self
+ )
else:
self._enum_value = conf.lib.clang_getEnumConstantDeclValue(self)
return self._enum_value
@property
@@ -2052,43 +2056,43 @@
return self._referenced
@property
def brief_comment(self) -> str:
"""Returns the brief comment text associated with that Cursor"""
- return conf.lib.clang_Cursor_getBriefCommentText(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getBriefCommentText(self) # type: ignore [no-any-return]
@property
def raw_comment(self) -> str:
"""Returns the raw comment text associated with that Cursor"""
- return conf.lib.clang_Cursor_getRawCommentText(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getRawCommentText(self) # type: ignore [no-any-return]
def get_arguments(self) -> Iterator[Cursor]:
"""Return an iterator for accessing the arguments of this cursor."""
num_args = conf.lib.clang_Cursor_getNumArguments(self)
for i in range(0, num_args):
yield conf.lib.clang_Cursor_getArgument(self, i)
def get_num_template_arguments(self) -> int:
"""Returns the number of template args associated with this cursor."""
- return conf.lib.clang_Cursor_getNumTemplateArguments(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getNumTemplateArguments(self) # type: ignore [no-any-return]
def get_template_argument_kind(self, num: int) -> TemplateArgumentKind:
"""Returns the TemplateArgumentKind for the indicated template
argument."""
- return conf.lib.clang_Cursor_getTemplateArgumentKind(self, num) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getTemplateArgumentKind(self, num) # type: ignore [no-any-return]
def get_template_argument_type(self, num: int) -> Type:
"""Returns the CXType for the indicated template argument."""
- return conf.lib.clang_Cursor_getTemplateArgumentType(self, num) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getTemplateArgumentType(self, num) # type: ignore [no-any-return]
def get_template_argument_value(self, num: int) -> int:
"""Returns the value of the indicated arg as a signed 64b integer."""
- return conf.lib.clang_Cursor_getTemplateArgumentValue(self, num) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getTemplateArgumentValue(self, num) # type: ignore [no-any-return]
def get_template_argument_unsigned_value(self, num: int) -> int:
"""Returns the value of the indicated arg as an unsigned 64b integer."""
- return conf.lib.clang_Cursor_getTemplateArgumentUnsignedValue(self, num) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getTemplateArgumentUnsignedValue(self, num) # type: ignore [no-any-return]
def get_children(self) -> Iterator[Cursor]:
"""Return an iterator for accessing the children of this cursor."""
# FIXME: Expose iteration from CIndex, PR6125.
@@ -2124,31 +2128,31 @@
"""
return TokenGroup.get_tokens(self._tu, self.extent)
def get_field_offsetof(self) -> int:
"""Returns the offsetof the FIELD_DECL pointed by this Cursor."""
- return conf.lib.clang_Cursor_getOffsetOfField(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_getOffsetOfField(self) # type: ignore [no-any-return]
def is_anonymous(self) -> bool:
"""
Check if the record is anonymous.
"""
if self.kind == CursorKind.FIELD_DECL:
return self.type.get_declaration().is_anonymous()
- return conf.lib.clang_Cursor_isAnonymous(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_isAnonymous(self) # type: ignore [no-any-return]
def is_bitfield(self) -> bool:
"""
Check if the field is a bitfield.
"""
- return conf.lib.clang_Cursor_isBitField(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Cursor_isBitField(self) # type: ignore [no-any-return]
def get_bitfield_width(self) -> int:
"""
Retrieve the width of a bitfield.
"""
- return conf.lib.clang_getFieldDeclBitWidth(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getFieldDeclBitWidth(self) # type: ignore [no-any-return]
@staticmethod
def from_result(
res: Cursor, fn: Any, args: Sequence[Cursor | TranslationUnit | Type]
) -> Cursor | None:
@@ -2285,11 +2289,11 @@
"""
@property
def spelling(self) -> str:
"""Retrieve the spelling of this TypeKind."""
- return conf.lib.clang_getTypeKindSpelling(self.value) # type: ignore [no-any-return]
+ return conf.lib.clang_getTypeKindSpelling(self.value) # type: ignore [no-any-return]
INVALID = 0
UNEXPOSED = 1
VOID = 2
BOOL = 3
@@ -2534,14 +2538,14 @@
res._tu = tu
return res
def get_num_template_arguments(self) -> int:
- return conf.lib.clang_Type_getNumTemplateArguments(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getNumTemplateArguments(self) # type: ignore [no-any-return]
def get_template_argument_type(self, num: int) -> Type:
- return conf.lib.clang_Type_getTemplateArgumentAsType(self, num) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getTemplateArgumentAsType(self, num) # type: ignore [no-any-return]
def get_canonical(self) -> Type:
"""
Return the canonical type for a Type.
@@ -2549,111 +2553,111 @@
ways a specific type can be represented. The canonical type
is the underlying type with all the "sugar" removed. For
example, if 'T' is a typedef for 'int', the canonical type for
'T' would be 'int'.
"""
- return conf.lib.clang_getCanonicalType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getCanonicalType(self) # type: ignore [no-any-return]
def is_const_qualified(self) -> bool:
"""Determine whether a Type has the "const" qualifier set.
This does not look through typedefs that may have added "const"
at a different level.
"""
- return conf.lib.clang_isConstQualifiedType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isConstQualifiedType(self) # type: ignore [no-any-return]
def is_volatile_qualified(self) -> bool:
"""Determine whether a Type has the "volatile" qualifier set.
This does not look through typedefs that may have added "volatile"
at a different level.
"""
- return conf.lib.clang_isVolatileQualifiedType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isVolatileQualifiedType(self) # type: ignore [no-any-return]
def is_restrict_qualified(self) -> bool:
"""Determine whether a Type has the "restrict" qualifier set.
This does not look through typedefs that may have added "restrict" at
a different level.
"""
- return conf.lib.clang_isRestrictQualifiedType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isRestrictQualifiedType(self) # type: ignore [no-any-return]
def is_function_variadic(self) -> bool:
"""Determine whether this function Type is a variadic function type."""
assert self.kind == TypeKind.FUNCTIONPROTO
- return conf.lib.clang_isFunctionTypeVariadic(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isFunctionTypeVariadic(self) # type: ignore [no-any-return]
def get_address_space(self) -> int:
- return conf.lib.clang_getAddressSpace(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getAddressSpace(self) # type: ignore [no-any-return]
def get_typedef_name(self) -> str:
- return conf.lib.clang_getTypedefName(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTypedefName(self) # type: ignore [no-any-return]
def is_pod(self) -> bool:
"""Determine whether this Type represents plain old data (POD)."""
- return conf.lib.clang_isPODType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_isPODType(self) # type: ignore [no-any-return]
def get_pointee(self) -> Type:
"""
For pointer types, returns the type of the pointee.
"""
- return conf.lib.clang_getPointeeType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getPointeeType(self) # type: ignore [no-any-return]
def get_declaration(self) -> Cursor:
"""
Return the cursor for the declaration of the given type.
"""
- return conf.lib.clang_getTypeDeclaration(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTypeDeclaration(self) # type: ignore [no-any-return]
def get_result(self) -> Type:
"""
Retrieve the result type associated with a function type.
"""
- return conf.lib.clang_getResultType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getResultType(self) # type: ignore [no-any-return]
def get_array_element_type(self) -> Type:
"""
Retrieve the type of the elements of the array type.
"""
- return conf.lib.clang_getArrayElementType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getArrayElementType(self) # type: ignore [no-any-return]
def get_array_size(self) -> int:
"""
Retrieve the size of the constant array.
"""
- return conf.lib.clang_getArraySize(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getArraySize(self) # type: ignore [no-any-return]
def get_class_type(self) -> Type:
"""
Retrieve the class type of the member pointer type.
"""
- return conf.lib.clang_Type_getClassType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getClassType(self) # type: ignore [no-any-return]
def get_named_type(self) -> Type:
"""
Retrieve the type named by the qualified-id.
"""
- return conf.lib.clang_Type_getNamedType(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getNamedType(self) # type: ignore [no-any-return]
def get_align(self) -> int:
"""
Retrieve the alignment of the record.
"""
- return conf.lib.clang_Type_getAlignOf(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getAlignOf(self) # type: ignore [no-any-return]
def get_size(self) -> int:
"""
Retrieve the size of the record.
"""
- return conf.lib.clang_Type_getSizeOf(self) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getSizeOf(self) # type: ignore [no-any-return]
def get_offset(self, fieldname: str) -> int:
"""
Retrieve the offset of a field in the record.
"""
- return conf.lib.clang_Type_getOffsetOf(self, fieldname) # type: ignore [no-any-return]
+ return conf.lib.clang_Type_getOffsetOf(self, fieldname) # type: ignore [no-any-return]
def get_ref_qualifier(self) -> RefQualifierKind:
"""
Retrieve the ref-qualifier of the type.
"""
@@ -2684,17 +2688,17 @@
)
@property
def spelling(self) -> str:
"""Retrieve the spelling of this Type."""
- return conf.lib.clang_getTypeSpelling(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTypeSpelling(self) # type: ignore [no-any-return]
def __eq__(self, other: object) -> bool:
if not isinstance(other, Type):
return False
- return conf.lib.clang_equalTypes(self, other) # type: ignore [no-any-return]
+ return conf.lib.clang_equalTypes(self, other) # type: ignore [no-any-return]
def __ne__(self, other: object) -> bool:
return not self.__eq__(other)
@@ -2774,11 +2778,11 @@
@CachedProperty
def spelling(self) -> str:
if self.__kindNumber in SpellingCache:
return SpellingCache[self.__kindNumber]
- return conf.lib.clang_getCompletionChunkText(self.cs, self.key) # type: ignore [no-any-return]
+ return conf.lib.clang_getCompletionChunkText(self.cs, self.key) # type: ignore [no-any-return]
# We do not use @CachedProperty here, as the manual implementation is
# apparently still significantly faster. Please profile carefully if you
# would like to add CachedProperty back.
@property
@@ -2857,11 +2861,11 @@
def __len__(self) -> int:
return self.num_chunks
@CachedProperty
def num_chunks(self) -> int:
- return conf.lib.clang_getNumCompletionChunks(self.obj) # type: ignore [no-any-return]
+ return conf.lib.clang_getNumCompletionChunks(self.obj) # type: ignore [no-any-return]
def __getitem__(self, key: int) -> CompletionChunk:
if self.num_chunks <= key:
raise IndexError
return CompletionChunk(self.obj, key)
@@ -2870,21 +2874,21 @@
for i in range(len(self)):
yield self[i]
@property
def priority(self) -> int:
- return conf.lib.clang_getCompletionPriority(self.obj) # type: ignore [no-any-return]
+ return conf.lib.clang_getCompletionPriority(self.obj) # type: ignore [no-any-return]
@property
def availability(self) -> CompletionChunk.Kind:
res = conf.lib.clang_getCompletionAvailability(self.obj)
return availabilityKinds[res]
@property
def briefComment(self) -> str:
if conf.function_exists("clang_getCompletionBriefComment"):
- return conf.lib.clang_getCompletionBriefComment(self.obj) # type: ignore [no-any-return]
+ return conf.lib.clang_getCompletionBriefComment(self.obj) # type: ignore [no-any-return]
return ""
def __repr__(self) -> str:
return (
" | ".join([str(a) for a in self])
@@ -2959,11 +2963,11 @@
def __len__(self) -> int:
return int(conf.lib.clang_codeCompleteGetNumDiagnostics(self.ccr))
def __getitem__(self, key: int) -> Diagnostic:
- return conf.lib.clang_codeCompleteGetDiagnostic(self.ccr, key) # type: ignore [no-any-return]
+ return conf.lib.clang_codeCompleteGetDiagnostic(self.ccr, key) # type: ignore [no-any-return]
return DiagnosticsItr(self)
class Index(ClangObject):
@@ -3177,16 +3181,16 @@
conf.lib.clang_disposeTranslationUnit(self)
@property
def cursor(self) -> Cursor:
"""Retrieve the cursor that represents the given translation unit."""
- return conf.lib.clang_getTranslationUnitCursor(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTranslationUnitCursor(self) # type: ignore [no-any-return]
@property
def spelling(self) -> str:
"""Get the original translation unit source file name."""
- return conf.lib.clang_getTranslationUnitSpelling(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTranslationUnitSpelling(self) # type: ignore [no-any-return]
def get_includes(self) -> Iterator[FileInclusion]:
"""
Return an iterable sequence of FileInclusion objects that describe the
sequence of inclusions in a translation unit. The first object in
@@ -3449,16 +3453,16 @@
)
@property
def name(self) -> str:
"""Return the complete file and path name of the file."""
- return conf.lib.clang_getFileName(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getFileName(self) # type: ignore [no-any-return]
@property
def time(self) -> int:
"""Return the last modification time of the file."""
- return conf.lib.clang_getFileTime(self) # type: ignore [no-any-return]
+ return conf.lib.clang_getFileTime(self) # type: ignore [no-any-return]
def __str__(self) -> str:
return self.name
def __repr__(self) -> str:
@@ -3533,16 +3537,16 @@
self.ccmds = ccmds
@property
def directory(self) -> str:
"""Get the working directory for this CompileCommand"""
- return conf.lib.clang_CompileCommand_getDirectory(self.cmd) # type: ignore [no-any-return]
+ return conf.lib.clang_CompileCommand_getDirectory(self.cmd) # type: ignore [no-any-return]
@property
def filename(self) -> str:
"""Get the working filename for this CompileCommand"""
- return conf.lib.clang_CompileCommand_getFilename(self.cmd) # type: ignore [no-any-return]
+ return conf.lib.clang_CompileCommand_getFilename(self.cmd) # type: ignore [no-any-return]
@property
def arguments(self) -> Iterator[str]:
"""
Get an iterable object providing each argument in the
@@ -3617,20 +3621,20 @@
def getCompileCommands(self, filename: StrPath) -> CompileCommands:
"""
Get an iterable object providing all the CompileCommands available to
build filename. Returns None if filename is not found in the database.
"""
- return conf.lib.clang_CompilationDatabase_getCompileCommands( # type: ignore [no-any-return]
+ return conf.lib.clang_CompilationDatabase_getCompileCommands( # type: ignore [no-any-return]
self, os.fspath(filename)
)
def getAllCompileCommands(self) -> CompileCommands:
"""
Get an iterable object providing all the CompileCommands available from
the database.
"""
- return conf.lib.clang_CompilationDatabase_getAllCompileCommands(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CompilationDatabase_getAllCompileCommands(self) # type: ignore [no-any-return]
class Token(Structure):
"""Represents a single token from the preprocessor.
@@ -3647,26 +3651,26 @@
def spelling(self) -> str:
"""The spelling of this token.
This is the textual representation of the token in source.
"""
- return conf.lib.clang_getTokenSpelling(self._tu, self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTokenSpelling(self._tu, self) # type: ignore [no-any-return]
@property
def kind(self) -> TokenKind:
"""Obtain the TokenKind of the current token."""
return TokenKind.from_value(conf.lib.clang_getTokenKind(self))
@property
def location(self) -> SourceLocation:
"""The SourceLocation this Token occurs at."""
- return conf.lib.clang_getTokenLocation(self._tu, self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTokenLocation(self._tu, self) # type: ignore [no-any-return]
@property
def extent(self) -> SourceRange:
"""The SourceRange this Token occupies."""
- return conf.lib.clang_getTokenExtent(self._tu, self) # type: ignore [no-any-return]
+ return conf.lib.clang_getTokenExtent(self._tu, self) # type: ignore [no-any-return]
@property
def cursor(self) -> Cursor:
"""The Cursor this Token corresponds to."""
cursor = Cursor()
@@ -3724,11 +3728,11 @@
Save all changed files to disk.
Returns 1 if any files were not saved successfully,
returns 0 otherwise.
"""
- return conf.lib.clang_CXRewriter_overwriteChangedFiles(self) # type: ignore [no-any-return]
+ return conf.lib.clang_CXRewriter_overwriteChangedFiles(self) # type: ignore [no-any-return]
def write_main_file_to_stdout(self) -> None:
"""
Writes the main file to stdout.
"""
``````````
</details>
https://github.com/llvm/llvm-project/pull/78114
More information about the cfe-commits
mailing list