private MethodType BindArgumentType(BoundMethodHandle mh, int pos, BasicType bt)
 {
     assert(mh.Form == LambdaForm);
     assert(mh.Form.Names[1 + pos].Type_Renamed == bt);
     assert(BasicType.basicType(mh.Type().ParameterType(pos)) == bt);
     return(mh.Type().DropParameterTypes(pos, pos + 1));
 }
        internal virtual BoundMethodHandle BindArgumentD(BoundMethodHandle mh, int pos, double value)
        {
            assert(mh.SpeciesData() == OldSpeciesData());
            BasicType  bt    = D_TYPE;
            MethodType type2 = BindArgumentType(mh, pos, bt);
            LambdaForm form2 = BindArgumentForm(1 + pos);

            return(mh.CopyWithExtendD(type2, form2, value));
        }
 internal override BoundMethodHandle Rebind()
 {
     return(BoundMethodHandle.MakeReinvoker(this));
 }
        /// Editing methods for method handles.  These need to have fast paths.

        private BoundMethodHandle.SpeciesData OldSpeciesData()
        {
            return(BoundMethodHandle.SpeciesData(LambdaForm));
        }
 internal override BoundMethodHandle CopyWithExtendL(MethodType mt, LambdaForm lf, Object narg)
 /*non-public*/
 {
     return(BoundMethodHandle.BindSingle(mt, lf, narg));            // Use known fast path.
 }