(context, builder, sig, args)
return it._getvalue()
Implement iter() for .keys(), .values(), .items()
Implement iter() for .keys(), .values(), .items()
Implement iter () for . keys () . values () . items ()
def impl_iterable_getiter(context, builder, sig, args):
    """Implement iter() for .keys(), .values(), .items()
    """
    iterablety, = sig.args
    iter_val, = args

    # iter_val is an empty dict iterator created with call to _iterator_codegen()
    # this iterator has no state or meminfo filled yet, only parent (i.e. dict),
    # which we use to make actual call
    dict_type = iterablety.parent
    it = context.make_helper(builder, iterablety.iterator_type, iter_val)
    call_native_getiter(context, builder, dict_type, it.parent, it)

    # this is a new NRT managed iterator, so no need to use impl_ret_borrowed
    return it._getvalue()
def impl_iterable_getiter ( context , builder , sig , args ) : iterablety , = sig . args iter_val , = args # iter_val is an empty dict iterator created with call to _iterator_codegen() # this iterator has no state or meminfo filled yet, only parent (i.e. dict), # which we use to make actual call dict_type = iterablety . parent it = context . make_helper ( builder , iterablety . iterator_type , iter_val ) call_native_getiter ( context , builder , dict_type , it . parent , it ) # this is a new NRT managed iterator, so no need to use impl_ret_borrowed return it . _getvalue ( )