public override void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
        {
            var eventSymbol = operation.Event;
            var adds        = operation.Adds;

            base.VisitEventAssignmentExpression(operation);
        }
        public override void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
        {
            var kindStr = operation.Adds ? "EventAdd" : "EventRemove";

            LogString($"{nameof(IEventAssignmentExpression)} ({kindStr})");
            LogSymbol(operation.Event, header: " (Event: ");
            LogString(")");
            LogCommonPropertiesAndNewLine(operation);

            Visit(operation.EventInstance, header: "Event Instance");
            Visit(operation.HandlerValue, header: "Handler");
        }
        private static void AnalyzeEventAssignmentMethod([NotNull] IMethodBindingExpression binding,
                                                         [NotNull] IEventAssignmentExpression assignment, OperationAnalysisContext context)
        {
            string eventTargetName     = GetEventTargetName(assignment.EventInstance);
            string handlerNameExpected = string.Concat(eventTargetName, "On", assignment.Event.Name);

            string handlerNameActual = binding.Method.Name;

            if (handlerNameActual != handlerNameExpected)
            {
                context.ReportDiagnostic(Diagnostic.Create(Rule, binding.Syntax.GetLocation(), handlerNameActual,
                                                           assignment.Event.Name, handlerNameExpected));
            }
        }
Example #4
0
        public sealed override void Initialize(AnalysisContext context)
        {
            context.RegisterOperationAction(
                (operationContext) =>
            {
                operationContext.ReportDiagnostic(Diagnostic.Create(EventReferenceDescriptor, operationContext.Operation.Syntax.GetLocation()));
            },
                OperationKind.EventReferenceExpression);

            context.RegisterOperationAction(
                (operationContext) =>
            {
                IEventAssignmentExpression eventAssignment = (IEventAssignmentExpression)operationContext.Operation;
                if (eventAssignment.Event.Name == "Mumble")
                {
                    operationContext.ReportDiagnostic(Diagnostic.Create(eventAssignment.Adds ? HandlerAddedDescriptor : HandlerRemovedDescriptor, operationContext.Operation.Syntax.GetLocation()));
                }
            },
                OperationKind.EventAssignmentExpression);

            context.RegisterOperationAction(
                (operationContext) =>
            {
                operationContext.ReportDiagnostic(Diagnostic.Create(EventReferenceDescriptor, operationContext.Operation.Syntax.GetLocation()));
            },
                OperationKind.EventAssignmentExpression);

            context.RegisterOperationAction(
                (operationContext) =>
            {
                operationContext.ReportDiagnostic(Diagnostic.Create(PropertyReferenceDescriptor, operationContext.Operation.Syntax.GetLocation()));
            },
                OperationKind.PropertyReferenceExpression);

            context.RegisterOperationAction(
                (operationContext) =>
            {
                operationContext.ReportDiagnostic(Diagnostic.Create(FieldReferenceDescriptor, operationContext.Operation.Syntax.GetLocation()));
            },
                OperationKind.FieldReferenceExpression);

            context.RegisterOperationAction(
                (operationContext) =>
            {
                operationContext.ReportDiagnostic(Diagnostic.Create(MethodBindingDescriptor, operationContext.Operation.Syntax.GetLocation()));
            },
                OperationKind.MethodBindingExpression);
        }
Example #5
0
 public virtual void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
 {
     DefaultVisit(operation);
 }
Example #6
0
 public virtual void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
 {
     DefaultVisit(operation);
 }
Example #7
0
 public override void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
 {
     Visit(operation.EventInstance);
     Visit(operation.HandlerValue);
 }
 public static IEventAssignmentExpression Update(this IEventAssignmentExpression self, IEventSymbol @event, Boolean @isAddition, Boolean @isDynamic, IOperation @receiverOpt, IOperation @argument, ITypeSymbol @type) => self;
 /// <inheritdoc />
 public override IOperation VisitEventAssignmentExpression(IEventAssignmentExpression operation, object argument)
 {
     return(base.VisitEventAssignmentExpression(operation, argument));
 }
 /// <inheritdoc />
 public override Expression VisitEventAssignmentExpression(IEventAssignmentExpression operation, LocalBinder argument)
 {
     return(base.VisitEventAssignmentExpression(operation, argument));
 }
Example #11
0
 public override IOperation VisitEventAssignmentExpression(IEventAssignmentExpression operation, object argument)
 {
     return(new EventAssignmentExpression(Visit(operation.EventReference), Visit(operation.HandlerValue), operation.Adds, ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit));
 }
Example #12
0
        public override void VisitEventAssignmentExpression(IEventAssignmentExpression operation)
        {
            var eventSymbol = operation.Event;
            var adds = operation.Adds;

            base.VisitEventAssignmentExpression(operation);
        }