'Get all the methods with @accepts (and @returns) decorators
Functions are assumed to be instance methods, unless decorated with @staticmethod'

def get_typed_methods(self):

    FunctionType = type(ClrType.__dict__['dummy_function'])
    for (item_name, item) in self.__dict__.items():
        function = None
        is_static = False
        if isinstance(item, FunctionType):
            (function, is_static) = (item, False)
        elif isinstance(item, staticmethod):
            (function, is_static) = (getattr(self, item_name), True)
        elif isinstance(item, property):
            if (item.fget and self.is_typed_method(item.fget)):
                if (item.fget.func_name == item_name):
                    (yield TypedFunction(item.fget, False, item_name, None))
            if (item.fset and self.is_typed_method(item.fset)):
                if (item.fset.func_name == item_name):
                    (yield TypedFunction(item.fset, False, None, item_name))
            continue
        else:
            continue
        if self.is_typed_method(function):
            (yield TypedFunction(function, is_static))
