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)); } }
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); }
public virtual void VisitEventAssignmentExpression(IEventAssignmentExpression operation) { DefaultVisit(operation); }
public virtual void VisitEventAssignmentExpression(IEventAssignmentExpression operation) { DefaultVisit(operation); }
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)); }
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)); }
public override void VisitEventAssignmentExpression(IEventAssignmentExpression operation) { var eventSymbol = operation.Event; var adds = operation.Adds; base.VisitEventAssignmentExpression(operation); }