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)); } }
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)); }
public override void VisitLock(ILockOperation operation) { Assert.Equal(OperationKind.Lock, operation.Kind); AssertEx.Equal(new[] { operation.LockedValue, operation.Body }, operation.Children); }
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)); }
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()); }
public override bool VisitLock([NotNull] ILockOperation operation1, [CanBeNull] IOperation argument) { return(argument is ILockOperation operation2 && AreBaseOperationsEqual(operation1, operation2)); }