objtype: More comment clarification for attribute lookup.
This commit is contained in:
parent
f8ee88bbe0
commit
3425431370
@ -131,8 +131,8 @@ STATIC void mp_obj_class_lookup(struct class_lookup_data *lookup, const mp_obj_
|
|||||||
if (elem != NULL) {
|
if (elem != NULL) {
|
||||||
lookup->dest[0] = elem->value;
|
lookup->dest[0] = elem->value;
|
||||||
if (lookup->is_type) {
|
if (lookup->is_type) {
|
||||||
// If we look up class method, we need to pass original type there,
|
// If we look up a class method, we need to return original type for which we
|
||||||
// not type where we found a class method.
|
// do a lookup, not a (base) type in which we found the class method.
|
||||||
const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj;
|
const mp_obj_type_t *org_type = (const mp_obj_type_t*)lookup->obj;
|
||||||
instance_convert_return_attr(NULL, org_type, elem->value, lookup->dest);
|
instance_convert_return_attr(NULL, org_type, elem->value, lookup->dest);
|
||||||
} else {
|
} else {
|
||||||
@ -425,7 +425,7 @@ STATIC void instance_convert_return_attr(mp_obj_t self, const mp_obj_type_t *typ
|
|||||||
dest[0] = ((mp_obj_static_class_method_t*)member)->fun;
|
dest[0] = ((mp_obj_static_class_method_t*)member)->fun;
|
||||||
dest[1] = (mp_obj_t)type;
|
dest[1] = (mp_obj_t)type;
|
||||||
} else if (MP_OBJ_IS_TYPE(member, &mp_type_type)) {
|
} else if (MP_OBJ_IS_TYPE(member, &mp_type_type)) {
|
||||||
// Don't try to bind types
|
// Don't try to bind types (even though they're callable)
|
||||||
dest[0] = member;
|
dest[0] = member;
|
||||||
} else if (mp_obj_is_callable(member)) {
|
} else if (mp_obj_is_callable(member)) {
|
||||||
// return a bound method, with self being this object
|
// return a bound method, with self being this object
|
||||||
|
Loading…
Reference in New Issue
Block a user