def method_descriptor(descriptor: str) -> MethodDescriptor:
    """
    Parses a Method descriptor as described in section 4.3.3 of the JVM
    specification.
    """
    end_para = descriptor.find(')')
    returns = descriptor[end_para + 1:]
    args = descriptor[1:end_para]

    return MethodDescriptor(
        parse_descriptor(returns)[0],
        parse_descriptor(args),
        returns,
        args,
        descriptor
    )
def method_descriptor ( descriptor : str ) -> MethodDescriptor : end_para = descriptor . find ( ')' ) returns = descriptor [ end_para + 1 : ] args = descriptor [ 1 : end_para ] return MethodDescriptor ( parse_descriptor ( returns ) [ 0 ] , parse_descriptor ( args ) , returns , args , descriptor )
Parses a Method descriptor as described in section 4.3.3 of the JVM
    specification.