public override void VisitIsType(IIsTypeOperation operation) { Assert.Equal(OperationKind.IsType, operation.Kind); Assert.NotNull(operation.TypeOperand); bool isNegated = operation.IsNegated; Assert.Same(operation.ValueOperand, operation.Children.Single()); }
public override ParameterValidationAbstractValue VisitIsType(IIsTypeOperation operation, object argument) { var value = base.VisitIsType(operation, argument); // Mark a location as validated on paths where user has performed an IsType check, for example 'x is object'. // See comments in VisitBinaryOperatorCore override above for further details. if (FlowBranchConditionKind == ControlFlowConditionKind.WhenTrue) { MarkValidatedLocations(operation.ValueOperand); } return(value); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="operation">IOperationインスタンス</param> /// <param name="container">イベントコンテナ</param> public IsType(IIsTypeOperation operation, EventContainer container) : base(container) { var name = Expression.GetSymbolName(operation.TypeOperand, true); var type = Expression.GetSymbolTypeName(operation.TypeOperand); if (operation.TypeOperand.TypeKind == TypeKind.Class) { // 外部ファイル参照イベント発行 RaiseOtherFileReferenced(operation.Syntax, operation.TypeOperand); } Expressions.AddRange(OperationFactory.GetExpressionList(operation.ValueOperand, container)); Expressions.Add(new Expression("is", "")); Expressions.Add(new Expression(name, type)); }
public override PointsToAbstractValue VisitIsType(IIsTypeOperation operation, object argument) { var _ = base.VisitIsType(operation, argument); return(PointsToAbstractValue.NoLocation); }
public override NullAbstractValue VisitIsType(IIsTypeOperation operation, object argument) { var _ = base.VisitIsType(operation, argument); return(NullAbstractValue.NotNull); }
public override IOperation VisitIsType(IIsTypeOperation operation, object argument) { return(new IsTypeExpression(Visit(operation.ValueOperand), operation.TypeOperand, operation.IsNegated, ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit)); }
public virtual void VisitIsType(IIsTypeOperation operation) { DefaultVisit(operation); }
public override void VisitIsType([NotNull] IIsTypeOperation operation) { base.VisitIsType(operation); }
public override void VisitIsType(IIsTypeOperation operation) { var isType = operation.TypeOperand; base.VisitIsType(operation); }
public override bool VisitIsType([NotNull] IIsTypeOperation operation1, [CanBeNull] IOperation argument) { return(argument is IIsTypeOperation operation2 && AreBaseOperationsEqual(operation1, operation2) && AreSymbolsEqual(operation1.TypeOperand, operation2.TypeOperand) && operation1.IsNegated == operation2.IsNegated); }