Skip to main content

NPipeline Analyzer Code Mapping

This document provides a comprehensive mapping of all NPipeline analyzer diagnostic codes, organized by category.

Complete Analyzer Mapping

Configuration & Setup Analyzers (NP90XX)

CodeNameCategoryDescription
NP9001ResilientExecutionConfigurationAnalyzerConfiguration & SetupEnsures proper configuration for node restart functionality
NP9002UnboundedMaterializationConfigurationAnalyzerConfiguration & SetupPrevents unbounded memory growth in retry options
NP9003InappropriateParallelismConfigurationAnalyzerConfiguration & SetupDetects inappropriate parallelism settings
NP9004BatchingConfigurationMismatchAnalyzerConfiguration & SetupIdentifies batching configuration mismatches
NP9005TimeoutConfigurationAnalyzerConfiguration & SetupDetects inappropriate timeout configurations

Performance & Optimization Analyzers (NP91XX)

CodeNameCategoryDescription
NP9101BlockingAsyncOperationAnalyzerPerformance & OptimizationDetects blocking operations in async methods
NP9102SynchronousOverAsyncAnalyzerPerformance & OptimizationIdentifies sync-over-async anti-patterns
NP9103LinqInHotPathsAnalyzerPerformance & OptimizationPrevents LINQ usage in performance-critical paths
NP9104InefficientStringOperationsAnalyzerPerformance & OptimizationIdentifies inefficient string operations
NP9105AnonymousObjectAllocationAnalyzerPerformance & OptimizationDetects unnecessary anonymous object allocations
NP9106ValueTaskOptimizationAnalyzerPerformance & OptimizationEncourages ValueTask optimization
NP9107SourceNodeStreamingAnalyzerPerformance & OptimizationEnsures proper streaming patterns in source nodes
NP9108NodeParameterlessConstructorAnalyzerPerformance & OptimizationSuggests parameterless constructors for better performance

Reliability & Error Handling Analyzers (NP92XX)

CodeNameCategoryDescription
NP9201OperationCanceledExceptionAnalyzerReliability & Error HandlingPrevents swallowing of OperationCanceledException
NP9202InefficientExceptionHandlingAnalyzerReliability & Error HandlingIdentifies inefficient exception handling patterns
NP9203CancellationTokenRespectAnalyzerReliability & Error HandlingEnsures proper cancellation token propagation

Data Integrity & Correctness Analyzers (NP93XX)

CodeNameCategoryDescription
NP9301SinkNodeInputConsumptionAnalyzerData Integrity & CorrectnessEnsures sink nodes consume all input data
NP9302PipelineContextAccessAnalyzerData Integrity & CorrectnessDetects unsafe PipelineContext access patterns

Design & Architecture Analyzers (NP94XX)

CodeNameCategoryDescription
NP9401StreamTransformNodeSuggestionAnalyzerDesign & ArchitectureSuggests using StreamTransformNode for streaming data
NP9402StreamTransformNodeExecutionStrategyAnalyzerDesign & ArchitectureDetects StreamTransformNode with incompatible execution strategies
NP9403NodeParameterlessConstructorAnalyzerDesign & ArchitectureDetects nodes without parameterless constructors
NP9404DependencyInjectionAnalyzerDesign & ArchitecturePromotes proper dependency injection patterns

Quick Reference by Code

CodeAnalyzerCategorySeverity
NP9001Resilience ConfigurationConfiguration & SetupWarning
NP9002Unbounded MaterializationConfiguration & SetupError
NP9003Inappropriate ParallelismConfiguration & SetupWarning
NP9004Batching MismatchConfiguration & SetupWarning
NP9005Timeout ConfigurationConfiguration & SetupWarning
NP9101Blocking OperationsPerformance & OptimizationWarning
NP9102Sync-Over-AsyncPerformance & OptimizationWarning
NP9103LINQ in Hot PathsPerformance & OptimizationWarning
NP9104Inefficient StringsPerformance & OptimizationWarning
NP9105Anonymous ObjectsPerformance & OptimizationWarning
NP9106ValueTask MissingPerformance & OptimizationWarning
NP9107Non-Streaming SourcePerformance & OptimizationWarning
NP9108Parameterless ConstructorPerformance & OptimizationInfo
NP9201Swallowed CancellationReliability & Error HandlingWarning
NP9202Inefficient ExceptionsReliability & Error HandlingWarning
NP9203Cancellation Not RespectedReliability & Error HandlingWarning
NP9301Input Not ConsumedData Integrity & CorrectnessError
NP9302Unsafe Context AccessData Integrity & CorrectnessWarning
NP9401StreamTransformNode SuggestionDesign & ArchitectureInfo
NP9402StreamTransformNode Execution StrategyDesign & ArchitectureWarning
NP9403Missing Parameterless ConstructorDesign & ArchitectureWarning
NP9404Missing DIDesign & ArchitectureWarning

By Category

Configuration & Setup (NP90XX)

  • NP9001: Incomplete resilience configuration detection
  • NP9002: Unbounded materialization configuration
  • NP9003: Inappropriate parallelism configuration
  • NP9004: Batching configuration mismatch
  • NP9005: Timeout configuration issues

Performance & Optimization (NP91XX)

  • NP9101: Blocking async operations
  • NP9102: Sync-over-async patterns
  • NP9103: LINQ in hot paths
  • NP9104: Inefficient string operations
  • NP9105: Anonymous object allocations
  • NP9106: Missing ValueTask optimization
  • NP9107: Non-streaming SourceNode patterns
  • NP9108: Parameterless constructor performance suggestion

Reliability & Error Handling (NP92XX)

  • NP9201: Swallowed cancellation exceptions
  • NP9202: Inefficient exception handling
  • NP9203: Disrespected cancellation tokens

Data Integrity & Correctness (NP93XX)

  • NP9301: Unconsumed sink node input
  • NP9302: Unsafe PipelineContext access

Design & Architecture (NP94XX)

  • NP9401: StreamTransformNode suggestion
  • NP9402: StreamTransformNode execution strategy
  • NP9403: Missing parameterless constructor
  • NP9404: Missing dependency injection

Diagnostic Severity Levels

LevelMeaningDefault Action
ErrorCritical issue preventing proper operationBuild fails
WarningIssue that may cause problemsBuild succeeds with warning
InfoSuggestion for improvementBuild succeeds silently

Configuration

All analyzers can be configured in .editorconfig:

# Configure individual analyzers
dotnet_diagnostic.NP9001.severity = error
dotnet_diagnostic.NP9002.severity = error
dotnet_diagnostic.NP9101.severity = error
dotnet_diagnostic.NP9107.severity = error
dotnet_diagnostic.NP9201.severity = error
dotnet_diagnostic.NP9301.severity = error
dotnet_diagnostic.NP9401.severity = error

Learn More