[cfe-commits] [PATCH] Implement Type.get_arg_type() through clang_getArgType

Tobias Grosser tobias at grosser.es
Sun Feb 5 04:42:20 PST 2012


On 02/05/2012 01:30 PM, Tobias Grosser wrote:
> On 02/05/2012 06:20 AM, Gregory Szorc wrote:
>> ---
>>    bindings/python/clang/cindex.py           |   20 ++++++++++++++++++++
>>    bindings/python/tests/cindex/test_type.py |    7 ++++++-
>>    2 files changed, 26 insertions(+), 1 deletions(-)
>>
>>
>> 0006-Implement-Type.get_arg_type-through-clang_getArgType.patch
>>
>>
>> diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
>> index efc2f52..4b25b03 100644
>> --- a/bindings/python/clang/cindex.py
>> +++ b/bindings/python/clang/cindex.py
>> @@ -1192,16 +1192,31 @@ class Type(Structure):
>>            return Type_get_pointee(self)
>>
>>        def get_declaration(self):
>>            """
>>            Return the cursor for the declaration of the given type.
>>            """
>>            return Type_get_declaration(self)
>>
>> +    def get_arg_type(self, index):
>> +        """Return the Type of a specific argument.
>
> I just realized the names that refer to python classes are commonly
> started with an uppercase letter. I criticized this in your earlier
> patches, but changed my mind now. I reverted my changes and think it
> is a good thing to do. (I also changed a case, where we did not do this
> before).+        The first argument is the index of the argument whose
> type to retrieve.
>
>
>   >  +        The first argument is the index of the argument whose type
>   >  to retrieve.
>
> What about referring to the first argument directly with its name 'index'.
>
> For example
>
> index refers to the position of the argument in the argument list. The
> first argument has index 0 the last one .arguments_count() - 1.
>
>
>
> Thinking about this patch, I am wondering if it would not be more
> python-style to just expose an iterator 'arguments'.
>
> We can than use len(type.arguments) to get the number of arguments. And
> type.arguments[i] to get the i-th argument.

Or actually we could call it type.argument_types and we would then use 
type.argument_types[i] to get the i-th argument type. This would not 
make the argument_count() function obsolete, but probably the 
get_arg_type function.

Tobi

Tobi



More information about the cfe-commits mailing list