Example #1
0
        /// <summary>
        /// Called on compilation start.
        /// </summary>
        /// <param name="context">The context.</param>
        private void OnCompilationStart(CompilationStartAnalysisContext context)
        {
            if (context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.SystemLinqEnumerable) is INamedTypeSymbol enumerableType)
            {
                var operationActionsContext = new OperationActionsContext(
                    context.Compilation,
                    enumerableType);

                context.RegisterOperationAction(
                    CreateOperationActionsHandler(operationActionsContext).AnalyzeInvocationOperation,
                    OperationKind.Invocation);
            }
        }
        /// <summary>
        /// Called on compilation start.
        /// </summary>
        /// <param name="context">The context.</param>
        private void OnCompilationStart(CompilationStartAnalysisContext context)
        {
            if (WellKnownTypes.Enumerable(context.Compilation) is INamedTypeSymbol enumerableType)
            {
                var operationActionsContext = new OperationActionsContext(
                    context.Compilation,
                    enumerableType);

                context.RegisterOperationAction(
                    CreateOperationActionsHandler(operationActionsContext).AnalyzeInvocationOperation,
                    OperationKind.Invocation);
            }
        }
Example #3
0
 /// <summary>
 /// Creates the operation actions handler.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <returns>The operation actions handler.</returns>
 protected abstract OperationActionsHandler CreateOperationActionsHandler(OperationActionsContext context);
Example #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OperationActionsHandler"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 protected OperationActionsHandler(OperationActionsContext context)
 {
     Context = context;
 }
Example #5
0
 internal CSharpOperationActionsHandler(OperationActionsContext context)
     : base(context)
 {
 }
Example #6
0
 /// <summary>
 /// Creates the operation actions handler.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <returns>The operation actions handler.</returns>
 protected override OperationActionsHandler CreateOperationActionsHandler(OperationActionsContext context)
 => new CSharpOperationActionsHandler(context);