コード例 #1
0
        public string GetSignature(IEntityWithParameters method, bool includeFullName)
        {
            _buffer.Length = 0;
            if (includeFullName)
            {
                _buffer.Append(method.FullName);
            }
            else
            {
                _buffer.Append(method.Name);
            }
            _buffer.Append("(");

            IParameter[] parameters = method.GetParameters();
            for (int i = 0; i < parameters.Length; ++i)
            {
                if (i > 0)
                {
                    _buffer.Append(", ");
                }
                if (method.AcceptVarArgs && i == parameters.Length - 1)
                {
                    _buffer.Append('*');
                }
                _buffer.Append(parameters[i].Type);
            }
            _buffer.Append(")");
            return(_buffer.ToString());
        }
コード例 #2
0
        public static string GetSignature(IEntityWithParameters method, bool includeFullName)
        {
            var buffer = new StringBuilder(includeFullName ? method.FullName : method.Name);

            buffer.Append("(");

            IParameter[] parameters = method.GetParameters();
            for (int i = 0; i < parameters.Length; ++i)
            {
                if (i > 0)
                {
                    buffer.Append(", ");
                }

                if (method.AcceptVarArgs && i == parameters.Length - 1)
                {
                    buffer.Append('*');
                }

                buffer.Append(parameters[i].Type);
            }

            buffer.Append(")");
            return(buffer.ToString());
        }
コード例 #3
0
        private IEnumerable <string> GenericArgumentsOf(IEntityWithParameters entity)
        {
            var method = entity as IMethod;

            if (method != null)
            {
                return(GenericsFrom(method.ConstructedInfo, method.GenericInfo));
            }
            return(null);
        }
コード例 #4
0
        public override void LeaveMethodInvocationExpression(MethodInvocationExpression node)
        {
            IEntityWithParameters entity = node.Target.Entity as IEntityWithParameters;

            if (entity != null)
            {
                ExpressionCollection arguments = node.Arguments;
                if (entity.AcceptVarArgs && UnityCallableResolutionServiceModule.IsArrayArgumentExplicitlyProvided(entity.GetParameters(), arguments))
                {
                    UnaryExpression expression2;
                    Expression      expression  = arguments[-1];
                    UnaryExpression expression1 = expression2 = new UnaryExpression();
                    int             num1        = (int)(expression2.Operator = UnaryOperatorType.Explode);
                    Expression      expression4 = expression2.Operand = expression;
                    IType           type1       = expression2.ExpressionType = this.GetExpressionType(expression);
                    arguments.ReplaceAt(-1, expression2);
                }
            }
        }
コード例 #5
0
ファイル: EntityFormatter.cs プロジェクト: hlizard/boo
		public virtual string FormatSignature(IEntityWithParameters method)
		{
			var buffer = new StringBuilder(method.Name);

			var genericArgs = GenericArgumentsOf(method);
			if (genericArgs != null)
				buffer.Append(FormatGenericArguments(genericArgs));

			buffer.Append("(");
			var parameters = method.GetParameters();
			var varArgsIndex = method.AcceptVarArgs ? parameters.Length - 1 : -1;
			for (var i = 0; i < parameters.Length; ++i)
			{
				if (i > 0)
					buffer.Append(", ");

				if (i == varArgsIndex)
					buffer.Append('*');

				buffer.Append(FormatType(parameters[i].Type));
			}
			buffer.Append(")");
			return buffer.ToString();
		}
コード例 #6
0
ファイル: ProcessMethodBodies.cs プロジェクト: stuman08/boo
 private void PreNormalizeExtensionInvocation(MethodInvocationExpression node, IEntityWithParameters extension)
 {
     if (0 == node.Arguments.Count
         || null == extension
         || node.Arguments.Count < extension.GetParameters().Length)
     {
         node.Arguments.Insert(0, EnsureMemberReferenceForExtension(node).Target);
     }
 }
コード例 #7
0
 public static string GetSignature(IEntityWithParameters method)
 {
     return(My <EntityFormatter> .Instance.FormatSignature(method));
 }
コード例 #8
0
ファイル: ReifyTypes.cs プロジェクト: richardbang83/GNet
 private static bool IsVarArgsInvocation(MethodInvocationExpression node, IEntityWithParameters entityWithParameters)
 {
     return(entityWithParameters.AcceptVarArgs && !AstUtil.InvocationEndsWithExplodeExpression(node));
 }
コード例 #9
0
ファイル: EntityFormatter.cs プロジェクト: hlizard/boo
		private IEnumerable<string> GenericArgumentsOf(IEntityWithParameters entity)
		{
			var method = entity as IMethod;
			if (method != null)
				return GenericsFrom(method.ConstructedInfo, method.GenericInfo);
			return null;
		}
コード例 #10
0
ファイル: ReifyTypes.cs プロジェクト: 0xb1dd1e/boo
		private static bool IsVarArgsInvocation(MethodInvocationExpression node, IEntityWithParameters entityWithParameters)
		{
			return entityWithParameters.AcceptVarArgs && !AstUtil.InvocationEndsWithExplodeExpression(node);
		}
コード例 #11
0
ファイル: TypeSystemServices.cs プロジェクト: HaKDMoDz/GNet
		public static string GetSignature(IEntityWithParameters method, bool includeFullName)
		{
			var buffer = new StringBuilder(includeFullName ? method.FullName : method.Name);
			buffer.Append("(");

			IParameter[] parameters = method.GetParameters();
			for (int i = 0; i < parameters.Length; ++i)
			{
				if (i > 0)
					buffer.Append(", ");

				if (method.AcceptVarArgs && i == parameters.Length - 1)
					buffer.Append('*');

				buffer.Append(parameters[i].Type);
			}

			buffer.Append(")");
			return buffer.ToString();
		}
コード例 #12
0
ファイル: TypeSystemServices.cs プロジェクト: HaKDMoDz/GNet
		public static string GetSignature(IEntityWithParameters method)
		{
			return GetSignature(method, true);
		}
コード例 #13
0
ファイル: TypeSystemServices.cs プロジェクト: boo-lang/boo
 public static string GetSignature(IEntityWithParameters method)
 {
     return My<EntityFormatter>.Instance.FormatSignature(method);
 }
コード例 #14
0
 public string GetSignature(IEntityWithParameters method)
 {
     return(GetSignature(method, true));
 }
コード例 #15
0
ファイル: TypeSystemServices.cs プロジェクト: boo/boo-lang
        public string GetSignature(IEntityWithParameters method, bool includeFullName)
        {
            _buffer.Length = 0;
            if (includeFullName)
            {
                _buffer.Append(method.FullName);
            }
            else
            {
                _buffer.Append(method.Name);
            }
            _buffer.Append("(");

            IParameter[] parameters = method.GetParameters();
            for (int i=0; i<parameters.Length; ++i)
            {
                if (i > 0) { _buffer.Append(", "); }
                if (method.AcceptVarArgs && i == parameters.Length-1) { _buffer.Append('*'); }
                _buffer.Append(parameters[i].Type);
            }
            _buffer.Append(")");
            return _buffer.ToString();
        }