[Turn off line numbering]1: arg gen, def, fltr, match; 2: var ancs, a, m, i, methods; 3: 4: if (!.has_flag('methods, sender())) 5: throw(~perm, sender() + " cannot view methods on " + this()); 6: if (def) 7: ancs = [def]; 8: else 9: ancs = .(gen[1])(gen[2]) || [this()]; 10: methods = #[]; 11: for a in (ancs) { 12: for m in (a.methods()) { 13: if (tostr(m).(match)(fltr) != 0) { 14: i = a.method_info(m); 15: methods = methods.add_elem(i[5], [a, m, @i]); 16: } 17: } 18: } 19: return methods;
// Created as a part of ColdCore, see: @help Credit