public override bool Equals(Expression other)
        {
            if (!(other is CanCastExpression))
            {
                return(false);
            }
            CanCastExpression canCast = other as CanCastExpression;

            return(this.TargetType.FullName == canCast.TargetType.FullName && this.Expression.Equals(canCast.Expression));
        }
		public override void VisitCanCastExpression(CanCastExpression node)
		{
			if (KeyWordWriter.IsType != null)
			{
				WriteKeyword(KeyWordWriter.IsType);
				WriteSpace();
			}
			Visit(node.Expression);
			WriteSpace();
			WriteKeyword(KeyWordWriter.Is);
			WriteSpace();
			WriteReferenceAndNamespaceIfInCollision(node.TargetType);
		}
        public override Expression CloneExpressionOnly()
        {
            CanCastExpression result = new CanCastExpression(Expression.CloneExpressionOnly(), TargetType, null);

            return(result);
        }
        public override Expression Clone()
        {
            CanCastExpression result = new CanCastExpression(Expression.Clone(), TargetType, instructions);

            return(result);
        }
 public override Expression CloneExpressionOnly()
 {
     CanCastExpression result = new CanCastExpression(Expression.CloneExpressionOnly(), TargetType, null);
     return result;
 }
        public override Expression Clone()
        {
			CanCastExpression result = new CanCastExpression(Expression.Clone(), TargetType, instructions);
			return result;
        }
		public override void VisitCanCastExpression(CanCastExpression node)
		{
			TypesDependingOn.UnionWith(Utilities.GetTypeReferenceTypesDepedningOn(node.TargetType));
			base.VisitCanCastExpression(node);
		}
Exemplo n.º 8
0
        private bool TryMatchCanCastPattern(BinaryExpression node, IEnumerable<Pattern.ICodePattern> patterns, out CanCastExpression result)
        {
            foreach (Pattern.ICodePattern pattern in patterns)
            {
                Pattern.MatchContext matchContext = Pattern.CodePattern.Match(pattern, node);
                if (matchContext.Success)
                {
                    result = CreateCanCastExpression(matchContext, node);
                    return true;
                }
            }

            result = null;
            return false;
        }
 public virtual void VisitCanCastExpression(CanCastExpression node)
 {
     Visit(node.Expression);
 }