public override void VisitIsPattern([NotNull] IIsPatternOperation operation) { NullCheckScanResult?scanResult = scanner.ScanIsPattern(operation); SetScanResult(scanResult); base.VisitIsPattern(operation); }
public override void VisitIsPattern(IIsPatternOperation operation) { var visitor = new NotNullPatternVisitor(); visitor.Visit(operation.Pattern); if (visitor.Matched) { Visit(operation.Value); } }
public NullCheckScanResult?ScanIsPattern([NotNull] IIsPatternOperation isPattern) { Guard.NotNull(isPattern, nameof(isPattern)); if (isPattern.Pattern is IConstantPatternOperation constantPattern) { if (IsConstantNullOrDefault(constantPattern.Value) && IsNullableValueType(isPattern.Value)) { NullCheckOperand nullCheckOperand = GetParentNullCheckOperand(isPattern); return(new NullCheckScanResult(isPattern.Value, NullCheckMethod.IsPattern, nullCheckOperand)); } } return(null); }
public override PointsToAbstractValue VisitIsPattern(IIsPatternOperation operation, object argument) { // TODO: Handle patterns // https://github.com/dotnet/roslyn-analyzers/issues/1571 return(base.VisitIsPattern(operation, argument)); }
public override NullAbstractValue VisitIsPattern(IIsPatternOperation operation, object argument) { var _ = base.VisitIsPattern(operation, argument); return(NullAbstractValue.NotNull); }
public override IOperation VisitIsPattern(IIsPatternOperation operation, object argument) { return(new IsPatternExpression(Visit(operation.Value), Visit(operation.Pattern), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit)); }
public override void VisitIsPattern(IIsPatternOperation operation) { Assert.Equal(OperationKind.IsPattern, operation.Kind); AssertEx.Equal(new[] { operation.Value, operation.Pattern }, operation.Children); }
public static ConversionInference Create(IIsPatternOperation operation) => Create( targetType: operation.Pattern.GetPatternType(), sourceType: operation.Value.Type, isTryCast: true);
public virtual void VisitIsPattern(IIsPatternOperation operation) { DefaultVisit(operation); }
public override void VisitIsPattern([NotNull] IIsPatternOperation operation) { base.VisitIsPattern(operation); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="operation">IOperationインスタンス</param> /// <param name="container">イベントコンテナ</param> public IsPattern(IIsPatternOperation operation, EventContainer container) : base(container) { Expressions.AddRange(OperationFactory.GetExpressionList(operation.Value, container)); Expressions.Add(new Expression("is", "")); Expressions.AddRange(OperationFactory.GetExpressionList(operation.Pattern, container)); }
public override bool VisitIsPattern([NotNull] IIsPatternOperation operation1, [CanBeNull] IOperation argument) { return(argument is IIsPatternOperation operation2 && AreBaseOperationsEqual(operation1, operation2)); }