Parses the specified line as a new version of the signature for 'element'.

        :arg statement: the string that has the new signature.
        :arg element: the code element whose signature will be changed.
        :arg module: for real-time module update, the module who the new element
          will be child to.

def parse_signature(self, statement, element, module=None):
        """Parses the specified line as a new version of the signature for 'element'.

        :arg statement: the string that has the new signature.
        :arg element: the code element whose signature will be changed.
        :arg module: for real-time module update, the module who the new element
          will be child to.
        """
        #Types don't have their signatures updated in any way that affects
        #the intellisense other than a name change.
        tmatch = self.RE_SIG.match(statement)
        result = (None, None, None)

        if tmatch is not None:
            name = tmatch.group("name")

            #We also need to overwrite the modifiers list with the new signature
            modifiers = tmatch.group("modifiers")
            if modifiers is not None:
                cleanmods = re.split("[\s,]+", modifiers.strip())
            else:
                cleanmods = []
            if module is None:
                element.update_name(name)
                element.modifiers.extend(cleanmods)
            else:
                result = (CustomType(name, modifiers, {}, module), 
                          tmatch.start(), tmatch.end())
                                  
        return result