private static void Analyze(OperationAnalysisContext context)
        {
            ILockOperation lockOperation = (ILockOperation)context.Operation;

            if (lockOperation.LockedValue is IObjectCreationOperation || lockOperation is IDynamicObjectCreationOperation)
            {
                context.ReportDiagnostic(Diagnostic.Create(Rule, lockOperation.LockedValue.Syntax.GetLocation(), lockOperation.LockedValue.Syntax));
            }

            if (lockOperation.LockedValue is IInvocationOperation invocationOperation && invocationOperation.Instance is IObjectCreationOperation)
            {
                context.ReportDiagnostic(Diagnostic.Create(Rule, lockOperation.LockedValue.Syntax.GetLocation(), lockOperation.LockedValue.Syntax));
            }
        }
Exemplo n.º 2
0
        public override IOperation VisitLock(ILockOperation operation, object argument)
        {
            var baseLockStatement = (BaseLockStatement)operation;

            return(new LockStatement(Visit(operation.LockedValue), Visit(operation.Body), baseLockStatement.LockTakenSymbol, baseLockStatement.SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit));
        }
Exemplo n.º 3
0
 public override void VisitLock(ILockOperation operation)
 {
     Assert.Equal(OperationKind.Lock, operation.Kind);
     AssertEx.Equal(new[] { operation.LockedValue, operation.Body }, operation.Children);
 }
Exemplo n.º 4
0
 public virtual void VisitLock(ILockOperation operation)
 {
     DefaultVisit(operation);
 }
 public override void VisitLock([NotNull] ILockOperation operation)
 {
     Visit(operation.LockedValue);
 }
 public override IOperation VisitLock(ILockOperation operation, object argument)
 {
     return(new LockStatement(Visit(operation.LockedValue), Visit(operation.Body), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit));
 }
Exemplo n.º 7
0
 public override void VisitLock([NotNull] ILockOperation operation)
 {
     base.VisitLock(operation);
 }
 public override void VisitLock([NotNull] ILockOperation operation)
 {
     IncrementStatementCount(operation);
     base.VisitLock(operation);
 }
            public override Location VisitLock([NotNull] ILockOperation operation, [CanBeNull] object argument)
            {
                var syntax = (LockStatementSyntax)operation.Syntax;

                return(syntax.LockKeyword.GetLocation());
            }
Exemplo n.º 10
0
 public override bool VisitLock([NotNull] ILockOperation operation1, [CanBeNull] IOperation argument)
 {
     return(argument is ILockOperation operation2 && AreBaseOperationsEqual(operation1, operation2));
 }