Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Analyzer = SCAnalyzer.Analyzer
View Source
var SCAnalyzer = lint.InitializeAnalyzer(&lint.Analyzer{ Analyzer: &analysis.Analyzer{ Name: "SA9008", Run: run, Requires: []*analysis.Analyzer{inspect.Analyzer, buildir.Analyzer}, }, Doc: &lint.RawDocumentation{ Title: `\'else\' branch of a type assertion is probably not reading the right value`, Text: ` When declaring variables as part of an \'if\' statement (like in \"if foo := ...; foo {\"), the same variables will also be in the scope of the \'else\' branch. This means that in the following example if x, ok := x.(int); ok { // ... } else { fmt.Printf("unexpected type %T", x) } \'x\' in the \'else\' branch will refer to the \'x\' from \'x, ok :=\'; it will not refer to the \'x\' that is being type-asserted. The result of a failed type assertion is the zero value of the type that is being asserted to, so \'x\' in the else branch will always have the value \'0\' and the type \'int\'. `, Since: "2022.1", Severity: lint.SeverityWarning, MergeIf: lint.MergeIfAny, }, })
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.