Improve method lookup in mp_obj_class_lookup.

Now searches both locals_dict and methods.  Partly addresses Issue #145.
This commit is contained in:
Damien George
2014-01-18 17:52:41 +00:00
parent 1d6fc94c16
commit f49ba1bd9c
3 changed files with 92 additions and 69 deletions

View File

@@ -820,8 +820,8 @@ void rt_load_method(mp_obj_t base, qstr attr, mp_obj_t *dest) {
if (attr == MP_QSTR___next__ && type->iternext != NULL) {
dest[0] = (mp_obj_t)&mp_builtin_next_obj;
dest[1] = base;
} else {
// generic method lookup
} else if (type->load_attr == NULL) {
// generic method lookup if type didn't provide a specific one
// this is a lookup in the object (ie not class or type)
const mp_method_t *meth = type->methods;
if (meth != NULL) {