Exemple #1
0
            public override PointsToAbstractValue VisitDelegateCreation(IDelegateCreationOperation operation, object argument)
            {
                var _ = base.VisitDelegateCreation(operation, argument);
                AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type);

                return(new PointsToAbstractValue(location));
            }
        public override TAbstractAnalysisValue VisitDelegateCreation(IDelegateCreationOperation operation, object argument)
        {
            var value = base.VisitDelegateCreation(operation, argument);
            PointsToAbstractValue instanceLocation = GetPointsToAbstractValue(operation);

            return(HandleInstanceCreation(operation, instanceLocation, value));
        }
            ScanForNoNonVsCaptureAttribAndRetrieveAnalyteData(OperationAnalysisContext con)
            {
                bool                       foundAttribute;
                INamedTypeSymbol           delCreateOpType = null;
                IDelegateCreationOperation delCreateOp     = null;
                IOperation                 target          = null;

                try
                {
                    delCreateOp = (IDelegateCreationOperation)con.Operation;
                    INamedTypeSymbol attributeSymbol = con.Compilation.FindNoNonVsCaptureAttribute();
                    con.CancellationToken.ThrowIfCancellationRequested();
                    if (delCreateOp.Type is INamedTypeSymbol nts && attributeSymbol != null)
                    {
                        delCreateOpType = nts;
                        bool tempFoundAttrib = delCreateOpType.DoesNamedTypeHaveAttribute(attributeSymbol);
                        target         = delCreateOp.Target;
                        foundAttribute = tempFoundAttrib &&
                                         target != null;
                    }
                    else
                    {
                        foundAttribute = false;
                    }
                }
Exemple #4
0
        static SyntaxNode PrepareSyntaxNode(SyntaxGenerator generator, IDelegateCreationOperation delegateCreationOperation, string parameterName)
        {
            if (delegateCreationOperation.Target is IAnonymousFunctionOperation anonymousMethod)
            {
                return(ReplaceParameter(anonymousMethod, parameterName));
            }

            if (delegateCreationOperation.Target is IMethodReferenceOperation)
            {
                return(generator.InvocationExpression(
                           delegateCreationOperation.Syntax,
                           generator.IdentifierName("x")));
            }

            return(delegateCreationOperation.Syntax);
        }
            public override NullAbstractValue VisitDelegateCreation(IDelegateCreationOperation operation, object argument)
            {
                var _ = base.VisitDelegateCreation(operation, argument);

                return(NullAbstractValue.NotNull);
            }
Exemple #6
0
 public override IOperation VisitDelegateCreation(IDelegateCreationOperation operation, object argument)
 {
     return(new DelegateCreationExpression(Visit(operation.Target), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit));
 }
 public override void VisitDelegateCreation(IDelegateCreationOperation operation)
 {
     Assert.Equal(OperationKind.DelegateCreation, operation.Kind);
     Assert.Same(operation.Target, operation.Children.Single());
 }
Exemple #8
0
 public virtual void VisitDelegateCreation(IDelegateCreationOperation operation)
 {
     DefaultVisit(operation);
 }
Exemple #9
0
 public override void VisitDelegateCreation([NotNull] IDelegateCreationOperation operation)
 {
     base.VisitDelegateCreation(operation);
 }
Exemple #10
0
 private static AbstractExpression ReadDelegateCreation(IDelegateCreationOperation op)
 {
     return(ReadExpression(op.Target));
 }
Exemple #11
0
 public override bool VisitDelegateCreation([NotNull] IDelegateCreationOperation operation1,
                                            [CanBeNull] IOperation argument)
 {
     return(argument is IDelegateCreationOperation operation2 && AreBaseOperationsEqual(operation1, operation2));
 }