private static VarType BuildNewType(VarType type, INewClassNameBuilder builder)
 {
     if (type.type == ICodeConstants.Type_Object)
     {
         string newClassName = builder.BuildNewClassname(type.value);
         if (newClassName != null)
         {
             return(new VarType(type.type, type.arrayDim, newClassName));
         }
     }
     return(null);
 }
Exemple #2
0
 public virtual string BuildNewDescriptor(INewClassNameBuilder builder)
 {
     if (type.type == ICodeConstants.Type_Object)
     {
         string newClassName = builder.BuildNewClassname(type.value);
         if (newClassName != null)
         {
             return(new VarType(type.type, type.arrayDim, newClassName).ToString());
         }
     }
     return(null);
 }
        public virtual string BuildNewDescriptor(INewClassNameBuilder builder)
        {
            bool updated = false;

            VarType[] newParams;
            if (@params.Length > 0)
            {
                newParams = new VarType[@params.Length];
                System.Array.Copy(@params, 0, newParams, 0, @params.Length);
                for (int i = 0; i < @params.Length; i++)
                {
                    VarType substitute = BuildNewType(@params[i], builder);
                    if (substitute != null)
                    {
                        newParams[i] = substitute;
                        updated      = true;
                    }
                }
            }
            else
            {
                newParams = VarType.Empty_Array;
            }
            VarType newRet       = ret;
            VarType substitute_1 = BuildNewType(ret, builder);

            if (substitute_1 != null)
            {
                newRet  = substitute_1;
                updated = true;
            }
            if (updated)
            {
                StringBuilder res = new StringBuilder("(");
                foreach (VarType param in newParams)
                {
                    res.Append(param);
                }
                res.Append(")").Append(newRet.ToString());
                return(res.ToString());
            }
            return(null);
        }