Esempio n. 1
0
 string JavaMethodArgs(IParametersEntity f, bool types = true)
 {
     if (types)
     {
         var args = string.Join(",", f.Parameters.Select(_convert.Param.UnoToJavaParameter));
         if (!f.IsStatic)
         {
             if (f.Parameters.Length > 0)
             {
                 args = "final UnoObject _this, " + args;
             }
             else
             {
                 args = "final UnoObject _this";
             }
         }
         return(args);
     }
     else
     {
         var args = string.Join(",", f.Parameters.Select(x => x.UnoName));
         if (!f.IsStatic)
         {
             if (f.Parameters.Length > 0)
             {
                 args = "_this, " + args;
             }
             else
             {
                 args = "_this";
             }
         }
         return(args);
     }
 }
Esempio n. 2
0
 void VerifyArguments(Source src, IParametersEntity member, params Expression[] args)
 {
     if (args.Length != member.Parameters.Length)
     {
         Log.Error(src, ErrorCode.I4042, "Arguments do not match method signature. " + member.Quote() + " requires " + member.Parameters.Length + ", but " + args.Length + " were given");
     }
     else
     {
         for (int i = 0; i < args.Length; i++)
         {
             if (args[i] is AddressOf && (args[i] as AddressOf).AddressType == AddressType.Ref && member.Parameters[i].Modifier != ParameterModifier.Ref)
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was unexpectedly passed using 'ref' modifier");
             }
             else if (args[i] is AddressOf && (args[i] as AddressOf).AddressType == AddressType.Out && member.Parameters[i].Modifier != ParameterModifier.Out)
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was unexpectedly passed using 'out' modifier");
             }
             else if (args[i] is AddressOf && !member.Parameters[i].IsReference)
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was unexpectedly passed as reference");
             }
             else if (member.Parameters[i].Modifier == ParameterModifier.Ref && !(args[i] is AddressOf && (args[i] as AddressOf).AddressType == AddressType.Ref))
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was not passed using required 'ref' modifier");
             }
             else if (member.Parameters[i].Modifier == ParameterModifier.Out && !(args[i] is AddressOf && (args[i] as AddressOf).AddressType == AddressType.Out))
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was not passed using required 'out' modifier");
             }
             else if (member.Parameters[i].IsReference && !(args[i] is AddressOf))
             {
                 Log.Error(src, ErrorCode.I0000, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " was not passed as reference");
             }
             else if (!args[i].ReturnType.Equals(member.Parameters[i].Type))
             {
                 Log.Error(src, ErrorCode.I4043, "Arguments do not match method signature. Argument #" + (i + 1) + " to " + member.Quote() + " has an incompatible type " + args[i].ReturnType.Quote() + ".");
             }
         }
     }
 }
Esempio n. 3
0
 public static bool CompareParametersEqualOrSubclassOf(this IParametersEntity a, IParametersEntity b)
 {
     return(CompareParametersEqualOrSubclassOf(a.Parameters, b.Parameters));
 }
Esempio n. 4
0
 public static bool CompareParameters(this IParametersEntity a, IParametersEntity b)
 {
     return(CompareParameters(a.Parameters, b.Parameters));
 }
Esempio n. 5
0
 public void WriteParameters(IParametersEntity entity, bool p = false, char left = '(', char right = ')')
 {
     WriteParameters(entity.Source, entity.Parameters, p, left, right);
 }
Esempio n. 6
0
 public void WriteArguments(IParametersEntity entity, Expression[] args, bool p = false, char left = '(', char right = ')')
 {
     WriteArguments(entity.Parameters, args, p, left, right);
 }