Merge pull request #42 from dixonwille/feature/better-memory-alloc-for-slices
Allocate memory for known size slices
This commit is contained in:
commit
80a5ff2eff
@ -24,7 +24,11 @@ func (d Deadcode) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, er
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Pos,
|
Pos: i.Pos,
|
||||||
|
@ -25,7 +25,11 @@ func (d Dupl) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
dupl := fmt.Sprintf("%s:%d-%d", i.To.Filename(), i.To.LineStart(), i.To.LineEnd())
|
dupl := fmt.Sprintf("%s:%d-%d", i.To.Filename(), i.To.LineStart(), i.To.LineEnd())
|
||||||
text := fmt.Sprintf("%d-%d lines are duplicate of %s",
|
text := fmt.Sprintf("%d-%d lines are duplicate of %s",
|
||||||
|
@ -25,7 +25,11 @@ func (e Errcheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, er
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
var text string
|
var text string
|
||||||
if i.FuncName != "" {
|
if i.FuncName != "" {
|
||||||
|
@ -33,8 +33,11 @@ func (lint Gas) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, erro
|
|||||||
|
|
||||||
analyzer.ProcessProgram(lintCtx.Program)
|
analyzer.ProcessProgram(lintCtx.Program)
|
||||||
issues, _ := analyzer.Report()
|
issues, _ := analyzer.Report()
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
text := fmt.Sprintf("%s: %s", i.RuleID, i.What) // TODO: use severity and confidence
|
text := fmt.Sprintf("%s: %s", i.RuleID, i.What) // TODO: use severity and confidence
|
||||||
var r result.Range
|
var r result.Range
|
||||||
|
@ -32,8 +32,11 @@ func (lint Goconst) Run(ctx context.Context, lintCtx *Context) ([]result.Issue,
|
|||||||
|
|
||||||
goconstIssues = append(goconstIssues, issues...)
|
goconstIssues = append(goconstIssues, issues...)
|
||||||
}
|
}
|
||||||
|
if len(goconstIssues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(goconstIssues))
|
||||||
for _, i := range goconstIssues {
|
for _, i := range goconstIssues {
|
||||||
textBegin := fmt.Sprintf("string %s has %d occurrences", formatCode(i.Str, lintCtx.Cfg), i.OccurencesCount)
|
textBegin := fmt.Sprintf("string %s has %d occurrences", formatCode(i.Str, lintCtx.Cfg), i.OccurencesCount)
|
||||||
var textEnd string
|
var textEnd string
|
||||||
|
@ -24,15 +24,18 @@ func (g Gocyclo) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, err
|
|||||||
for _, f := range lintCtx.ASTCache.GetAllValidFiles() {
|
for _, f := range lintCtx.ASTCache.GetAllValidFiles() {
|
||||||
stats = gocycloAPI.BuildStats(f.F, f.Fset, stats)
|
stats = gocycloAPI.BuildStats(f.F, f.Fset, stats)
|
||||||
}
|
}
|
||||||
|
if len(stats) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
sort.Slice(stats, func(i, j int) bool {
|
sort.Slice(stats, func(i, j int) bool {
|
||||||
return stats[i].Complexity > stats[j].Complexity
|
return stats[i].Complexity > stats[j].Complexity
|
||||||
})
|
})
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(stats))
|
||||||
for _, s := range stats {
|
for _, s := range stats {
|
||||||
if s.Complexity <= lintCtx.Settings().Gocyclo.MinComplexity {
|
if s.Complexity <= lintCtx.Settings().Gocyclo.MinComplexity {
|
||||||
continue
|
break //Break as the stats is already sorted from greatest to least
|
||||||
}
|
}
|
||||||
|
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
|
@ -53,8 +53,11 @@ func (g Golint) lintFiles(minConfidence float64, filenames ...string) ([]result.
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("can't lint files %s: %s", filenames, err)
|
return nil, fmt.Errorf("can't lint files %s: %s", filenames, err)
|
||||||
}
|
}
|
||||||
|
if len(ps) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var issues []result.Issue
|
issues := make([]result.Issue, 0, len(ps)) //This is worst case
|
||||||
for _, p := range ps {
|
for _, p := range ps {
|
||||||
if p.Confidence >= minConfidence {
|
if p.Confidence >= minConfidence {
|
||||||
issues = append(issues, result.Issue{
|
issues = append(issues, result.Issue{
|
||||||
|
@ -27,8 +27,11 @@ func (g Govet) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error
|
|||||||
}
|
}
|
||||||
govetIssues = append(govetIssues, issues...)
|
govetIssues = append(govetIssues, issues...)
|
||||||
}
|
}
|
||||||
|
if len(govetIssues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(govetIssues))
|
||||||
for _, i := range govetIssues {
|
for _, i := range govetIssues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Pos,
|
Pos: i.Pos,
|
||||||
|
@ -20,8 +20,11 @@ func (Ineffassign) Desc() string {
|
|||||||
|
|
||||||
func (lint Ineffassign) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (lint Ineffassign) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
issues := ineffassignAPI.Run(lintCtx.Paths.Files)
|
issues := ineffassignAPI.Run(lintCtx.Paths.Files)
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Pos,
|
Pos: i.Pos,
|
||||||
|
@ -27,8 +27,11 @@ func (lint Interfacer) Run(ctx context.Context, lintCtx *Context) ([]result.Issu
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
pos := lintCtx.SSAProgram.Fset.Position(i.Pos())
|
pos := lintCtx.SSAProgram.Fset.Position(i.Pos())
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
|
@ -20,8 +20,11 @@ func (Maligned) Desc() string {
|
|||||||
|
|
||||||
func (m Maligned) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (m Maligned) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
issues := malignedAPI.Run(lintCtx.Program)
|
issues := malignedAPI.Run(lintCtx.Program)
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
text := fmt.Sprintf("struct of size %d bytes could be of size %d bytes", i.OldSize, i.NewSize)
|
text := fmt.Sprintf("struct of size %d bytes could be of size %d bytes", i.OldSize, i.NewSize)
|
||||||
if lintCtx.Settings().Maligned.SuggestNewOrder {
|
if lintCtx.Settings().Maligned.SuggestNewOrder {
|
||||||
|
@ -41,8 +41,11 @@ func (m Megacheck) Desc() string {
|
|||||||
func (m Megacheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (m Megacheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
issues := megacheckAPI.Run(lintCtx.Program, lintCtx.LoaderConfig, lintCtx.SSAProgram,
|
issues := megacheckAPI.Run(lintCtx.Program, lintCtx.LoaderConfig, lintCtx.SSAProgram,
|
||||||
m.StaticcheckEnabled, m.GosimpleEnabled, m.UnusedEnabled)
|
m.StaticcheckEnabled, m.GosimpleEnabled, m.UnusedEnabled)
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Position,
|
Pos: i.Position,
|
||||||
|
@ -20,8 +20,11 @@ func (Structcheck) Desc() string {
|
|||||||
|
|
||||||
func (s Structcheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (s Structcheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
issues := structcheckAPI.Run(lintCtx.Program, lintCtx.Settings().Structcheck.CheckExportedFields)
|
issues := structcheckAPI.Run(lintCtx.Program, lintCtx.Settings().Structcheck.CheckExportedFields)
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Pos,
|
Pos: i.Pos,
|
||||||
|
@ -19,7 +19,11 @@ func (Unconvert) Desc() string {
|
|||||||
|
|
||||||
func (lint Unconvert) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (lint Unconvert) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
positions := unconvertAPI.Run(lintCtx.Program)
|
positions := unconvertAPI.Run(lintCtx.Program)
|
||||||
var res []result.Issue
|
if len(positions) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
res := make([]result.Issue, 0, len(positions))
|
||||||
for _, pos := range positions {
|
for _, pos := range positions {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: pos,
|
Pos: pos,
|
||||||
|
@ -20,8 +20,11 @@ func (Varcheck) Desc() string {
|
|||||||
|
|
||||||
func (v Varcheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
func (v Varcheck) Run(ctx context.Context, lintCtx *Context) ([]result.Issue, error) {
|
||||||
issues := varcheckAPI.Run(lintCtx.Program, lintCtx.Settings().Varcheck.CheckExportedFields)
|
issues := varcheckAPI.Run(lintCtx.Program, lintCtx.Settings().Varcheck.CheckExportedFields)
|
||||||
|
if len(issues) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
var res []result.Issue
|
res := make([]result.Issue, 0, len(issues))
|
||||||
for _, i := range issues {
|
for _, i := range issues {
|
||||||
res = append(res, result.Issue{
|
res = append(res, result.Issue{
|
||||||
Pos: i.Pos,
|
Pos: i.Pos,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user