private InvocationExprent(InvocationExprent expr)
     : this()
 {
     name            = expr.GetName();
     classname       = expr.GetClassname();
     isStatic__      = expr.IsStatic();
     canIgnoreBoxing = expr.canIgnoreBoxing;
     functype        = expr.GetFunctype();
     instance        = expr.GetInstance();
     if (instance != null)
     {
         instance = instance.Copy();
     }
     invocationTyp            = expr.GetInvocationTyp();
     invokeDynamicClassSuffix = expr.GetInvokeDynamicClassSuffix();
     stringDescriptor         = expr.GetStringDescriptor();
     descriptor    = expr.GetDescriptor();
     lstParameters = new List <Exprent>(expr.GetLstParameters());
     ExprProcessor.CopyEntries(lstParameters);
     AddBytecodeOffsets(expr.bytecode);
     bootstrapArguments = expr.GetBootstrapArguments();
 }
        public override bool Equals(object o)
        {
            if (o == this)
            {
                return(true);
            }
            if (!(o is InvocationExprent))
            {
                return(false);
            }
            InvocationExprent it = (InvocationExprent)o;

            return(InterpreterUtil.EqualObjects(name, it.GetName()) && InterpreterUtil.EqualObjects
                       (classname, it.GetClassname()) && isStatic__ == it.IsStatic() && InterpreterUtil
                   .EqualObjects(instance, it.GetInstance()) && InterpreterUtil.EqualObjects(descriptor
                                                                                             , it.GetDescriptor()) && functype == it.GetFunctype() && InterpreterUtil.EqualLists
                       (lstParameters, it.GetLstParameters()));
        }