Documentation
¶
Overview ¶
Package report provides diagnostic reporting capabilities for braider analyzer.
Index ¶
Constants ¶
View Source
const ( // CategoryConstructorGeneration is for constructor generation and update diagnostics. CategoryConstructorGeneration = "braider:constructor-generation" // CategoryDependencyResolution is for dependency graph construction and cycle detection diagnostics. CategoryDependencyResolution = "braider:dependency-resolution" // CategoryDependencyRegistration is for duplicate dependency registration diagnostics. // Maps to SeverityCritical in phasedchecker, aborting the pipeline. CategoryDependencyRegistration = "braider:dependency-registration" // CategoryAppValidation is for annotation.App validation diagnostics. CategoryAppValidation = "braider:app-validation" // CategoryBootstrapGeneration is for bootstrap code generation diagnostics. CategoryBootstrapGeneration = "braider:bootstrap-generation" // CategoryOptionValidation is for annotation option constraint violation diagnostics. // Maps to SeverityCritical in phasedchecker, aborting the pipeline. CategoryOptionValidation = "braider:option-validation" // CategoryExpressionValidation is for unsupported expression diagnostics. // Maps to SeverityCritical in phasedchecker, aborting the pipeline. CategoryExpressionValidation = "braider:expression-validation" // CategoryStructTagValidation is for braider struct tag validation diagnostics. CategoryStructTagValidation = "braider:struct-tag-validation" // CategoryContainerValidation is for container type parameter and field diagnostics. CategoryContainerValidation = "braider:container-validation" )
Diagnostic category constants used in analysis.Diagnostic.Category.
Variables ¶
This section is empty.
Functions ¶
func NewDiagnosticEmitter ¶
func NewDiagnosticEmitter() *diagnosticEmitter
NewDiagnosticEmitter is a constructor for diagnosticEmitter.
Generated by braider. DO NOT EDIT.
func NewSuggestedFixBuilder ¶
func NewSuggestedFixBuilder() *suggestedFixBuilder
NewSuggestedFixBuilder is a constructor for suggestedFixBuilder.
Generated by braider. DO NOT EDIT.
Types ¶
type DiagnosticEmitter ¶
type DiagnosticEmitter interface {
// EmitConstructorFix reports a diagnostic with constructor SuggestedFix.
EmitConstructorFix(
reporter Reporter,
pos token.Pos,
structName string,
fix analysis.SuggestedFix,
)
// EmitExistingConstructorFix reports a diagnostic for replacing an existing constructor.
EmitExistingConstructorFix(
reporter Reporter,
pos token.Pos,
structName string,
fix analysis.SuggestedFix,
)
// EmitCircularDependency reports a circular dependency error.
EmitCircularDependency(reporter Reporter, pos token.Pos, cycle []string)
// EmitGenerationError reports a constructor generation failure.
EmitGenerationError(reporter Reporter, pos token.Pos, structName string, reason string)
// EmitNonMainAppError reports App referencing non-main function.
EmitNonMainAppError(reporter Reporter, pos token.Pos, funcName string)
// EmitBootstrapFix reports a diagnostic for missing bootstrap code.
EmitBootstrapFix(reporter Reporter, pos token.Pos, fix analysis.SuggestedFix)
// EmitBootstrapUpdateFix reports a diagnostic for outdated bootstrap code.
EmitBootstrapUpdateFix(reporter Reporter, pos token.Pos, fix analysis.SuggestedFix)
// EmitDuplicateAppWarning reports duplicate annotation.App.
EmitDuplicateAppWarning(reporter Reporter, pos token.Pos)
// EmitGraphBuildError reports a dependency graph construction error.
EmitGraphBuildError(reporter Reporter, pos token.Pos, reason string)
// EmitDuplicateNamedDependencyWarning reports duplicate (TypeName, Name) pairs (non-fatal).
EmitDuplicateNamedDependencyWarning(
reporter Reporter, pos token.Pos, typeName string, name string, location1 string, location2 string,
)
// EmitOptionValidationError reports a fatal option validation error (constraint violation, interface mismatch, non-literal Namer).
EmitOptionValidationError(reporter Reporter, pos token.Pos, reason string)
// EmitUnsupportedVariableExpression reports an unsupported Variable argument expression error.
EmitUnsupportedVariableExpression(reporter Reporter, pos token.Pos, reason string)
// EmitInvalidStructTagError reports an invalid braider struct tag value (braider:"").
EmitInvalidStructTagError(reporter Reporter, pos token.Pos, fieldName string)
// EmitStructTagConflictError reports a braider struct tag conflict with WithoutConstructor.
EmitStructTagConflictError(reporter Reporter, pos token.Pos, fieldName string, reason string)
// EmitContainerTypeError reports a non-struct container type parameter.
EmitContainerTypeError(reporter Reporter, pos token.Pos, typeName string)
// EmitContainerFieldError reports an unresolvable container field.
EmitContainerFieldError(reporter Reporter, pos token.Pos, fieldName string, fieldType string, reason string)
}
DiagnosticEmitter emits diagnostics to the analysis pass.
type Reporter ¶
type Reporter interface {
Report(analysis.Diagnostic)
}
Reporter is an interface for reporting diagnostics. This matches the analysis.Pass.Report method signature.
type SuggestedFixBuilder ¶
type SuggestedFixBuilder interface {
// BuildConstructorFix creates a SuggestedFix for constructor insertion or replacement.
// If candidate.ExistingConstructor is non-nil, builds a replacement TextEdit.
// Otherwise, builds an insertion TextEdit after the struct definition.
BuildConstructorFix(
pass *analysis.Pass,
candidate detect.ConstructorCandidate,
constructor *generate.GeneratedConstructor,
) analysis.SuggestedFix
// BuildBootstrapFix creates a SuggestedFix for inserting bootstrap code.
// Inserts dependency variable and optionally adds reference in main.
BuildBootstrapFix(
pass *analysis.Pass,
app *detect.AppAnnotation,
bootstrap *generate.GeneratedBootstrap,
mainFunc *ast.FuncDecl,
) (analysis.SuggestedFix, error)
// BuildBootstrapReplacementFix creates a SuggestedFix for replacing existing bootstrap code.
// Replaces existing dependency variable and updates main reference if needed.
BuildBootstrapReplacementFix(
pass *analysis.Pass,
existing *ast.GenDecl,
bootstrap *generate.GeneratedBootstrap,
mainFunc *ast.FuncDecl,
) (analysis.SuggestedFix, error)
}
SuggestedFixBuilder constructs SuggestedFix for diagnostics.
Click to show internal directories.
Click to hide internal directories.