Giter VIP home page Giter VIP logo

go-mnd's Introduction

go-mnd - Magic number detector for Golang

A vet analyzer to detect magic numbers.

What is a magic number?
A magic number is a numeric literal that is not defined as a constant, but which may change, and therefore can be hard to update. It's considered a bad programming practice to use numbers directly in any source code without an explanation. It makes programs harder to read, understand, and maintain.

Project status

CI Go Report Card codecov

Install

Local

This analyzer requires Golang in version >= 1.12 because it's depends on the go/analysis API.

go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd

Github action

You can run go-mnd as a GitHub action as follows:

name: Example workflow
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      GO111MODULE: on
    steps:
      - name: Checkout Source
        uses: actions/checkout@v2
      - name: Run go-mnd
        uses: tommy-muehle/go-mnd@master
        with:
          args: ./...

GitLab CI

You can run go-mnd inside a GitLab CI pipeline as follows:

stages:
  - lint

go:lint:mnd:
  stage: lint
  needs: []
  image: golang:latest
  before_script:
    - go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
    - go mod tidy
    - go mod vendor
  script:
    - go vet -vettool $(which mnd) ./...

Homebrew

To install with Homebrew, run:

brew tap tommy-muehle/tap && brew install tommy-muehle/tap/mnd

Docker

To get the latest available Docker image:

docker pull tommymuehle/go-mnd

Windows

On Windows download the latest release.

Usage

asciicast

go vet -vettool $(which mnd) ./...

or directly

mnd ./...

or via Docker

docker run --rm -v "$PWD":/app -w /app tommymuehle/go-mnd:latest ./...

Options

The -checks option let's you define a comma separated list of checks.

The -ignored-numbers option let's you define a comma separated list of numbers to ignore.
For example: -ignored-numbers=1000,10_000,3.14159264

The -ignored-functions option let's you define a comma separated list of function name regexp patterns to exclude.
For example: -ignored-functions=math.*,http.StatusText,make

The -ignored-files option let's you define a comma separated list of filename regexp patterns to exclude.
For example: -ignored-files=magic_.*.go,.*_numbers.go

Checks

By default this detector analyses arguments, assigns, cases, conditions, operations and return statements.

  • argument
t := http.StatusText(200)
  • assign
c := &http.Client{
    Timeout: 5 * time.Second,
}
  • case
switch x {
    case 3:
}
  • condition
if x > 7 {
}
  • operation
var x, y int
y = 10 * x
  • return
return 3

Excludes

By default the numbers 0 and 1 as well as test files are excluded!

Further known excludes

The function "Date" in the "Time" package.

t := time.Date(2017, time.September, 26, 12, 13, 14, 0, time.UTC)

Additional custom excludes can be defined via option flag.

Development

Build

You can build the binary with:

make

Tests

You can run all unit tests using:

make test

And with coverage report:

make test-coverage

Docker image

You can also build locally the docker image by using the command:

make image

Stickers

Stickers image Sticker image

Just drop me a message via Twitter DM or email if you want some go-mnd stickers for you or your Gopher usergroup.

License

The MIT License (MIT). Please see LICENSE for more information.

go-mnd's People

Contributors

butuzov avatar gdavison avatar ksoichiro avatar ldez avatar nyiyui avatar tommy-muehle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

go-mnd's Issues

add ignored files will ignore all files

Short summary

when enable gomnd in golangci-lint
add ignore files will ignore all files
image
when excludes is blank, ignore files is ,ignores, then will match all files

Steps to reproduce the behavior

config:
gomnd:
settings:
mnd:
# the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description.
checks: case,condition,operation,return
ignored-numbers: 0,1
ignored-functions: fanout.*,GOMAXPROCS
ignored-files: "lexer.go"

go-mnd version or commit ref

v2.3.2

Go version (output of 'go version')

go1.16

Operating system / Environment

darwin

Expected behavior

only ignore some file

Actual behavior

ignore all files

Does not work with go 1.20+

Short summary

Does not work with go 1.20+

Steps to reproduce the behavior

git clone https://github.com/tommy-muehle/go-mnd
go install github.com/tommy-muehle/go-mnd/v2/cmd/mnd@latest
mnd ./...

go-mnd version or commit ref

v2 + latest

Go version (output of 'go version')

go version go1.20.4 darwin/arm64

Operating system / Environment

GO111MODULE=""
GOARCH="arm64"
GOBIN="//Users/nikolaydubina/go/bin"
GOCACHE="/Users/nikolaydubina/Library/Caches/go-build"
GOENV="/Users/nikolaydubina/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/nikolaydubina/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/nikolaydubina/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.20.4"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/nikolaydubina/Workspace/fpdecimal/go.mod"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/dt/1y99_j6s0yj7y151_dr026gh0000gn/T/go-build134182500=/tmp/go-build -gno-record-gcc-switches -fno-common"

Expected behavior

no errors on its own repository

Actual behavior

error

mnd: internal error: package "regexp" without types was imported from "github.com/tommy-muehle/go-mnd/v2/config"

Multiplicative 2 should not be considered a magic number

The 2 is considered a magic number in the following code.

func center(x, y, w, h int32) (cx int32, cy int32) {
	cx, cy = w/2+x, h/2+y

	return
}

In my opinion, whenever a number is divided by 2 or 2 and another number are multiplied together, then it is (almost?) always clear what is meant, and therefore it shouldn't be considered a magic number.

Trying to avoid it being considered a magic number with something like the following seems worse than leaving it as 2:

const havler = 2

func halve(x int32) (out int32) {
	out = x / havler

	return
}

That said, I think that something like this should still be counted as a magic number:

func foo(x int32) (y int32) {
    y = x + 2

    return 
}

(I'm using the named return value form, so that the examples actually produce error messages, given #11 is unresolved as I write this.)

Duplicated code

Short summary

There exists many duplicated code๏ผŒ why not refactoring๏ผŸIt seems that in each checker, the desitination is always a BasicLit, and before find a BasicLit, there are codes duplicated.

Multiplicating two numbers and a duration is not reported

Short summary

package main

import (
	"log"
	"time"
)

func main() {
	log.Println(24 * time.Hour) // reported
	log.Println(1 * 24 * time.Hour) // not reported
}

Steps to reproduce the behavior

(See above)

go-mnd version or commit ref

Running as part of golangci-lint:

$ golangci-lint --version
golangci-lint has version 1.54.2 built with go1.21.0 from 411e0bbb on 2023-08-21T12:04:32Z

Go version (output of 'go version')

$ go version
go version go1.21.1 darwin/arm64

Operating system / Environment

macOS 13.5.2 (22G91)

Expected behavior

Consistency: either both are reported because they're both magic numbers, or none are reported because when multiplied with a Duration the meaning is clear.

Actual behavior

Only one of the lines is reported: the one with only one number multiplied with a Duration.

need a way to ignore numbers in certain functions

Sometimes it does not make sense to externalize a magic number when it's usage is completely obvious, e.g. builder pattern:

config := aws.NewConfig().WithMaxRetries(30)

or converters

config.MaxRetries = aws.Int(30)

semantically, these numbers should be treated like assignments.

Concurrent map read and map write

Short summary

fatal error: concurrent map read and map write

I found the issue during the analysis of this issue golangci/golangci-lint#1653

Steps to reproduce the behavior

# https://github.com/kopia/kopia
$ [email protected]:kopia/kopia.git
$ git checkout 1f3b8d4d
$ mnd ./...

go-mnd version or commit ref

Current HEAD 900be5b

Go version (output of 'go version')

$ go version
go version go1.15.7 linux/amd64

Operating system / Environment

$ go version
go version go1.15.7 linux/amd64

Expected behavior

output
$ mnd ./...
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/content_index_recovery.go:64:9: Magic number: 255, in <condition> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/content_index_recovery.go:84:23: Magic number: 5, in <condition> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/blob_crypto.go:25:57: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/builder.go:175:54: Magic number: 16, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/builder.go:190:51: Magic number: 8, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/content_manager_lock_free.go:130:78: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/content/content_read_manager.go:77:19: Magic number: 100, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:43:30: Magic number: 2, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:44:30: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:49:62: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:53:66: Magic number: 2, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:54:66: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:55:66: Magic number: 8, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:58:17: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:58:22: Magic number: 20, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:62:51: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter_buzhash32.go:106:23: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter_buzhash32.go:107:23: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter_rabinkarp64.go:104:30: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter_rabinkarp64.go:104:41: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/splitter/splitter.go:66:15: Magic number: 20, in <return> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/object/object_reader.go:127:30: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/fs/cachefs/cache.go:176:24: Magic number: 1000, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/fs/cachefs/cache.go:177:24: Magic number: 100000, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/format_block.go:279:49: Magic number: 8, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/format_block.go:281:43: Magic number: 8, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/initialize.go:98:62: Magic number: 20, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/initialize.go:98:66: Magic number: 20, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/open.go:161:20: Magic number: 20, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/open.go:161:26: Magic number: 20, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:170:31: Magic number: 7, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:178:22: Magic number: 10, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:179:22: Magic number: 48, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:180:22: Magic number: 7, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:181:22: Magic number: 4, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:182:22: Magic number: 24, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/policy/retention_policy.go:183:22: Magic number: 3, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/upload.go:712:16: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/all_sources.go:33:9: Magic number: 0o555, in <return> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/source_directories.go:29:9: Magic number: 0o555, in <return> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/source_snapshots.go:31:9: Magic number: 0o555, in <return> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/repofs.go:220:16: Magic number: 0o555, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/repofs.go:266:16: Magic number: 0o644, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/snapshot/snapshotfs/source_snapshots.go:83:17: Magic number: 0o555, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/maintenance/content_rewrite.go:138:95: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/maintenance/maintenance_params.go:46:19: Magic number: 24, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/server/htmlui_fallback.go:161:24: Magic number: 2147484068, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/server/htmlui_fallback.go:186:75: Magic number: 420, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/server/htmlui_fallback.go:186:100: Magic number: 1574253768, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/server/htmlui_fallback.go:300:68: Magic number: 0o755, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/server/htmlui_fallback.go:186:52: Magic number: 358, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/repo/blob/b2/b2_storage.go:115:47: Magic number: 1e6, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_benchmark_splitters.go:96:29: Magic number: 1e6, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_benchmark_splitters.go:112:29: Magic number: 1e6, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_verify.go:174:15: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_repository_sync.go:214:37: Magic number: 8, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_create.go:118:63: Magic number: 20, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:123:45: Magic number: 8, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:123:49: Magic number: 1000000, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_repository_connect.go:51:56: Magic number: 20, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_repository_connect.go:52:64: Magic number: 20, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:58:20: Magic number: 1e15, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:59:20: Magic number: 1e12, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:60:20: Magic number: 1e9, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:61:20: Magic number: 1e6, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/cli/command_snapshot_estimate.go:62:20: Magic number: 1e3, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/examples/upload_download/setup_repository.go:51:24: Magic number: 100000000, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/blobtesting/asserts.go:36:32: Magic number: 2, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/blobtesting/concurrent.go:61:18: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/blobtesting/concurrent.go:129:18: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/internal/mockfs/mockfs.go:290:10: Magic number: 0o777, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/perf_benchmark/process_results.go:111:20: Magic number: 2, in <condition> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/tools/kopiarunner/kopia_snapshotter.go:247:19: Magic number: 2, in <condition> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testenv/cli_test_env.go:468:42: Magic number: 100, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testenv/cli_test_env.go:514:26: Magic number: 2, in <argument> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testenv/cli_test_env.go:272:63: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testenv/cli_test_env.go:274:64: Magic number: 2, in <operation> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testenv/faketimeserver.go:55:20: Magic number: 100, in <assign> detected
/home/ldez/sources/go/src/github.com/kopia/kopia/tests/testingaction/main.go:92:20: Magic number: 2, in <condition> detected

Actual behavior

output
$ mnd ./...
fatal error: concurrent map read and map write

goroutine 7123 [running]:
runtime.throw(0x736070, 0x21)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/panic.go:1116 +0x72 fp=0xc001271718 sp=0xc0012716e8 pc=0x435e92
runtime.mapaccess1_fast64(0x6d54a0, 0xc000099110, 0x8e, 0xc000421540)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/map_fast64.go:21 +0x198 fp=0xc001271740 sp=0xc001271718 pc=0x412478
github.com/tommy-muehle/go-mnd/checks.(*ArgumentAnalyzer).checkCallExpr(0xc005436c20, 0xc003307e40)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/checks/argument.go:48 +0xe9 fp=0xc001271820 sp=0xc001271740 pc=0x69d409
github.com/tommy-muehle/go-mnd/checks.(*ArgumentAnalyzer).Check(0xc005436c20, 0x786120, 0xc003307e40)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/checks/argument.go:39 +0x65 fp=0xc001271898 sp=0xc001271820 pc=0x69d225
github.com/tommy-muehle/go-mnd.run.func1(0x786120, 0xc003307e40)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:110 +0x21a fp=0xc0012719b8 sp=0xc001271898 pc=0x6a1f9a
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0010e67c0, 0xc0010e6900, 0x2, 0x2, 0xc001271b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2 fp=0xc0012719f8 sp=0xc0012719b8 pc=0x69fac2
github.com/tommy-muehle/go-mnd.run(0xc000850540, 0xc000850540, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753 fp=0xc001271b50 sp=0xc0012719f8 pc=0x6a1633
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647db80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e fp=0xc001271f18 sp=0xc001271b50 pc=0x6657be
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce-fm()
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:581 +0x2a fp=0xc001271f30 sp=0xc001271f18 pc=0x66af4a
sync.(*Once).doSlow(0xc00647db80, 0xc000825f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec fp=0xc001271f80 sp=0xc001271f30 pc=0x4835cc
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647db80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65 fp=0xc001271fb0 sp=0xc001271f80 pc=0x664f25
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647db80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34 fp=0xc001271fd8 sp=0xc001271fb0 pc=0x66a494
runtime.goexit()
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc001271fe0 sp=0xc001271fd8 pc=0x46c4e1
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc005907df8)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc005907df0)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc003717800, 0xc0, 0x100)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.analyze(0xc000988600, 0xc0, 0xc0, 0xc0000bc558, 0x1, 0x1, 0xc0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:262 +0x298
golang.org/x/tools/go/analysis/internal/checker.Run(0xc0000ae030, 0x1, 0x1, 0xc0000bc558, 0x1, 0x1, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:137 +0x23c
golang.org/x/tools/go/analysis/singlechecker.Main(0x8f1b80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/singlechecker/singlechecker.go:76 +0x256
main.main()
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/cmd/mnd/main.go:9 +0x2d

goroutine 7156 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7301 [runnable]:
go/ast.inspector.Visit(0xc002ca3500, 0x0, 0x0, 0xc0021a5bc0, 0xc00099e120)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:372 +0x79
go/ast.Walk(0x784d20, 0xc002ca3500, 0x7866a0, 0xc0046d0740)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:367 +0x189
go/ast.walkStmtList(0x784d20, 0xc002ca3500, 0xc006a7a800, 0x21, 0x40)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:32 +0x9e
go/ast.Walk(0x784d20, 0xc002ca3500, 0x7860a0, 0xc004f609f0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:224 +0x18e5
go/ast.Walk(0x784d20, 0xc002ca3500, 0x786520, 0xc004f60a50)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:344 +0xcbf
go/ast.walkDeclList(0x784d20, 0xc002ca3500, 0xc0009a02a0, 0x2, 0x2)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:38 +0x9e
go/ast.Walk(0x784d20, 0xc002ca3500, 0x7864a0, 0xc0017cd200)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:353 +0x2346
go/ast.Inspect(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:385
golang.org/x/tools/go/ast/inspector.traverse(0xc002af70a0, 0x2, 0x2, 0xc0007e3b40, 0x40dfb8, 0x10)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:157 +0x152
golang.org/x/tools/go/ast/inspector.New(...)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:49
golang.org/x/tools/go/analysis/passes/inspect.run(0xc000e60540, 0xc000e60540, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/inspect/inspect.go:48 +0x45
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000f772c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc000f772c0, 0xc001b47f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000f772c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f772c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7293 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7258 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a820)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7230 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7282 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7284 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c8c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7270 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b720)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7181 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6780)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7296 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d7c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7111 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x200, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x24fc7fb, 0xc0028d4301)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x24fc7fb, 0xc003881e01, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc0021c77c0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc00086ff60, 0xc000682260, 0x2, 0x2, 0xc00131fb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000a2e3c0, 0xc000a2e3c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647cc80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647cc80, 0xc001b9ff90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647cc80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647cc80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 6700 [runnable]:
go/ast.Walk(0x784d20, 0xc000682ee0, 0x786420, 0xc002c59a80)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:51 +0x2f74
go/ast.Walk(0x784d20, 0xc000682ee0, 0x786460, 0xc0029fbc50)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:84 +0x14f
go/ast.Walk(0x784d20, 0xc000682ee0, 0x786ae0, 0xc0016885c0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:161 +0x2507
go/ast.Walk(0x784d20, 0xc000682ee0, 0x786ba0, 0xc0029fbb60)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:318 +0x27a5
go/ast.Walk(0x784d20, 0xc000682ee0, 0x7865e0, 0xc002c59c00)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:331 +0xe65
go/ast.walkDeclList(0x784d20, 0xc000682ee0, 0xc001df3b00, 0xb, 0x10)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:38 +0x9e
go/ast.Walk(0x784d20, 0xc000682ee0, 0x7864a0, 0xc002de7800)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:353 +0x2346
go/ast.Inspect(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:385
golang.org/x/tools/go/ast/inspector.traverse(0xc002de4000, 0x1f, 0x1f, 0xc000a1fb40, 0x40dfb8, 0x10)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:157 +0x152
golang.org/x/tools/go/ast/inspector.New(...)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:49
golang.org/x/tools/go/analysis/passes/inspect.run(0xc000a2e600, 0xc000a2e600, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/inspect/inspect.go:48 +0x45
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d9a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d9a0, 0xc00090bf90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d9a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d9a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7267 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b360)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7148 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50c80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7145 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50780)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7147 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50b40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7146 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50a00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7249 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79cc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7128 [runnable]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc001, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x2d2001e, 0xc002ac70a0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x2d2001e, 0xc002ac2f01, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x786120, 0xc002ac3080)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc001027640, 0xc001027820, 0x2, 0x2, 0xc00126db18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc008efc3c0, 0xc008efc3c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d4960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d4960, 0xc000dcc790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d4960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d4960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7268 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b4a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7144 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f505a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7251 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79f40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7127 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x300, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x2d2660f, 0xc001319888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x2d2660f, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002c8ed00)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0010e69a0, 0xc0010e6c80, 0x2, 0x2, 0xc001319b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc0008506c0, 0xc0008506c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d4640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d4640, 0xc001b9df90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d4640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d4640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7281 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7287 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7cc80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7291 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7289 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7cf00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7151 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7208 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7124 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x300, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x2e01898, 0xc000a3bb01)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x2e01898, 0xc003010f01, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x786120, 0xc003010f00)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc00086aec0, 0xc000e6e820, 0x2, 0x2, 0xc00116db18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc008efc0c0, 0xc008efc0c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647dd60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647dd60, 0xc001b9c790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647dd60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647dd60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7269 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b5e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7186 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6dc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7132 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x2dff904, 0xc001169888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x2dff904, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002acf080)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc002ca27c0, 0xc002ca3280, 0x2, 0x2, 0xc001169b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000e60480, 0xc000e60480, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d4e60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d4e60, 0xc000dcaf90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d4e60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d4e60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7175 [semacquire]:
sync.runtime_Semacquire(0xc001320938)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc001320930)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc002c9f0f0, 0x1, 0x1)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000eb6000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:583 +0x79
sync.(*Once).doSlow(0xc000eb6000, 0xc00090ff90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000eb6000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7286 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7cb40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7134 [semacquire]:
sync.runtime_Semacquire(0xc001c931c8)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc001c931c0)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc001749968, 0x1, 0x1)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d5220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:583 +0x79
sync.(*Once).doSlow(0xc0000d5220, 0xc0010f6790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d5220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d5220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7283 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c780)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7133 [runnable]:
sync.runtime_SemacquireMutex(0xc0000c1c4c, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*RWMutex).RLock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:50
go/token.(*FileSet).file(0xc0000c1c40, 0x305dc89, 0xc0059fcb01)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:471 +0x1da
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x305dc89, 0xc0057d7401, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x786120, 0xc0057d7700)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc002076fc0, 0xc0020776e0, 0x2, 0x2, 0xc0013fdb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000267140, 0xc000267140, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d50e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d50e0, 0xc000dd1790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d50e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d50e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7210 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76be0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7176 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6140)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7285 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7ca00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7211 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76d20)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7179 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7261 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7abe0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7142 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50320)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7141 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f501e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7140 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f500a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7143 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50460)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7139 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0096e3e00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7229 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f783c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7220 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77860)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7138 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0096e2280)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7137 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc006510000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7117 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x18ba3db, 0xc0002bb901)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x18ba3db, 0xc002212301, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7866a0, 0xc001ef5dc0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0010beb20, 0xc0043d99f0, 0x1, 0x1, 0xc000217b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc009e32240, 0xc009e32240, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d400, 0xc001364f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7135 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d5360)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7247 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79a40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7180 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7294 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7221 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f779a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7271 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b860)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7232 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78780)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7223 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77c20)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7121 [semacquire]:
sync.runtime_Semacquire(0xc003a632b8)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc003a632b0)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc00578dfc0, 0x1, 0x1)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:583 +0x79
sync.(*Once).doSlow(0xc00647d900, 0xc00090bf90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7233 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f788c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7157 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f517c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7260 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7aaa0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7254 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a320)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7259 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7150 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50f00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7235 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78b40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7231 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7122 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x15ffac6, 0xc002795888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x15ffac6, 0x101, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002230000)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc001baea00, 0xc001baf440, 0x2, 0x2, 0xc002795b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc00a08c6c0, 0xc00a08c6c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647da40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647da40, 0xc001b9cf90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647da40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647da40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7178 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb63c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7209 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76aa0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7278 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c140)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7236 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78c80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7280 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c3c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7136 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d54a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7252 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a0a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7214 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x200, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x1c06ed1, 0xc0005ebf01)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x1c06ed1, 0xc0019ed001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc0019ed0c0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0020760a0, 0xc002076a60, 0x2, 0x2, 0xc0013fbb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000266fc0, 0xc000266fc0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000f770e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc000f770e0, 0xc001b46f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000f770e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f770e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7183 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6a00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7244 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7190 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb72c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7253 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a1e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7160 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51b80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7228 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78280)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7161 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51cc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7172 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8be0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7243 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7245 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f797c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7158 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7191 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7215 [semacquire]:
sync.runtime_Semacquire(0xc004e3e018)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc004e3e010)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc0025a8948, 0x1, 0x1)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000f77220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:583 +0x79
sync.(*Once).doSlow(0xc000f77220, 0xc001b47f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000f77220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7163 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f80a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7219 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77720)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7212 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76e60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7100 [runnable]:
go/ast.Walk(0x784d20, 0xc0010e6ce0, 0x786420, 0xc00272d500)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:51 +0x2f74
go/ast.Walk(0x784d20, 0xc0010e6ce0, 0x786460, 0xc005049350)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:84 +0x14f
go/ast.Walk(0x784d20, 0xc0010e6ce0, 0x7865a0, 0xc002be5dc0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:165 +0x1dad
go/ast.Walk(0x784d20, 0xc0010e6ce0, 0x786520, 0xc0051344b0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:342 +0xc6a
go/ast.walkDeclList(0x784d20, 0xc0010e6ce0, 0xc004651900, 0xf, 0x10)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:38 +0x9e
go/ast.Walk(0x784d20, 0xc0010e6ce0, 0x7864a0, 0xc009243700)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:353 +0x2346
go/ast.Inspect(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:385
golang.org/x/tools/go/ast/inspector.traverse(0xc00578cd88, 0x1, 0x1, 0xc00a085b40, 0x40dfb8, 0x10)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:157 +0x152
golang.org/x/tools/go/ast/inspector.New(...)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:49
golang.org/x/tools/go/analysis/passes/inspect.run(0xc000850780, 0xc000850780, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/inspect/inspect.go:48 +0x45
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000eb60a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc000eb60a0, 0xc00090ff90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000eb60a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb60a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7234 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78a00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7185 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6c80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7177 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6280)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7182 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb68c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7237 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78dc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7266 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b220)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7246 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7109 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x275ecc7, 0xc0026f2501)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x275ecc7, 0xc002744301, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7866a0, 0xc002744540)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0010ba3a0, 0xc0055feb10, 0x1, 0x1, 0xc000093b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc0008503c0, 0xc0008503c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647ca00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647ca00, 0xc000f67790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647ca00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647ca00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 6863 [runnable]:
go/ast.Walk(0x784d20, 0xc002077a80, 0x7864a0, 0xc0025abc00)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:51 +0x2f74
go/ast.Inspect(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/ast/walk.go:385
golang.org/x/tools/go/ast/inspector.traverse(0xc005e582d0, 0xa, 0xa, 0xc0007e7b40, 0x40dfb8, 0x10)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:157 +0x152
golang.org/x/tools/go/ast/inspector.New(...)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:49
golang.org/x/tools/go/analysis/passes/inspect.run(0xc000267200, 0xc000267200, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/inspect/inspect.go:48 +0x45
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d52c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d52c0, 0xc0010f6790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d52c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d52c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7227 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78140)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7276 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7bea0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7241 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f792c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7226 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7295 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7218 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f775e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7166 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8460)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7118 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x1f6c4f4, 0xc0013ff888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x1f6c4f4, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002312240)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc0013a0320, 0xc0013a0d40, 0x2, 0x2, 0xc0013ffb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc009e323c0, 0xc009e323c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d540, 0xc000e38f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7200 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7f40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7167 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f85a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7188 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7262 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7ad20)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7213 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76fa0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7277 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c000)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7184 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6b40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7189 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 6902 [runnable]:
golang.org/x/tools/go/ast/inspector.traverse(0xc006198730, 0xa, 0xa, 0xc000a1bb40, 0x40dfb8, 0x10)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:155 +0x119
golang.org/x/tools/go/ast/inspector.New(...)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:49
golang.org/x/tools/go/analysis/passes/inspect.run(0xc009e32480, 0xc009e32480, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/passes/inspect/inspect.go:48 +0x45
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000f7a640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc000f7a640, 0xc000f88f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000f7a640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a640)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7171 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8aa0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7288 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7cdc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7114 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x11ded63, 0xc000219888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x11ded63, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002050480)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc00089d120, 0xc00089dae0, 0x2, 0x2, 0xc000219b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc00a08c3c0, 0xc00a08c3c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d040, 0xc001b9e790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7224 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77d60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7159 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51a40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7222 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77ae0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7149 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f50dc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7162 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51e00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7250 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79e00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7174 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8e60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7164 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f81e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7165 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8320)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7168 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f86e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7248 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79b80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7263 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7ae60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7225 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77ea0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7240 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7242 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7265 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b0e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7187 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb6f00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7173 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8d20)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7264 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7afa0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7126 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x2c29329, 0xc00131b888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x2c29329, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002948080)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc008e7dd20, 0xc008e7de60, 0x2, 0x2, 0xc00131bb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000266cc0, 0xc000266cc0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc0000d4500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc0000d4500, 0xc001b78f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc0000d4500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0000d4500)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7125 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x101, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0xf390ef, 0xc0010e3888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0xf390ef, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc000b3d940)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc008e7db40, 0xc008e7dc80, 0x2, 0x2, 0xc0010e3b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000266b40, 0xc000266b40, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647dea0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647dea0, 0xc001b72790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647dea0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647dea0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7113 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0xa413da, 0xc0028d4001)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0xa413da, 0xc000d82101, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x786120, 0xc000d82200)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc000fda480, 0xc00086ee00, 0x2, 0x2, 0xc002797b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000a2e240, 0xc000a2e240, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647cf00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647cf00, 0xc000e3d790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647cf00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647cf00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7290 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7238 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f78f00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7279 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7c280)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7217 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f774a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7272 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7b9a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7115 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x8fc000, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0x1889037, 0xc0010e1888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x1889037, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc001762c80)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc001bae2a0, 0xc001bae680, 0x2, 0x2, 0xc0010e1b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc00a08c540, 0xc00a08c540, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d180, 0xc000e36f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7292 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7d2c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7170 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8960)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7169 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc0051f8820)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7239 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f79040)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7119 [runnable]:
sync.runtime_SemacquireMutex(0xc0000c1c4c, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*RWMutex).RLock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:50
go/token.(*FileSet).file(0xc0000c1c40, 0x1f72376, 0xc000450b01)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:471 +0x1da
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x1f72376, 0xc0015d1a01, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7866a0, 0xc0015d1e40)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc00085f840, 0xc005392990, 0x1, 0x1, 0xc009e3bb18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc009e320c0, 0xc009e320c0, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d680, 0xc001ba0790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7275 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7bd60)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7199 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7e00)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7154 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51400)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7274 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7bc20)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7273 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7bae0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7201 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f760a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7207 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76820)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7205 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f765a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7216 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f77360)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7198 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7cc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7155 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7152 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f51180)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7120 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c48, 0x600, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:103 +0x85
go/token.(*FileSet).file(0xc0000c1c40, 0x1cd85f0, 0xc0007ca901)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0x1cd85f0, 0xc002aa1801, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc002380580)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc000e6f980, 0xc001027500, 0x2, 0x2, 0xc009e35b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc008efc240, 0xc008efc240, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647d7c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647d7c0, 0xc00258d790)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647d7c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647d7c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7153 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc001f512c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7193 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7680)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7197 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7b80)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7195 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7900)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7112 [semacquire]:
sync.runtime_SemacquireMutex(0xc0000c1c44, 0x0, 0x1)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:138 +0x105
sync.(*Mutex).Lock(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/mutex.go:81
sync.(*RWMutex).Lock(0xc0000c1c40)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/rwmutex.go:98 +0x90
go/token.(*FileSet).file(0xc0000c1c40, 0xe52352, 0xc001167888)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:483 +0x11e
go/token.(*FileSet).PositionFor(0xc0000c1c40, 0xe52352, 0x203001, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:511 +0x65
go/token.(*FileSet).Position(...)
	/home/ldez/.gvm/gos/go1.15.7/src/go/token/position.go:522
github.com/tommy-muehle/go-mnd.run.func1(0x7865e0, 0xc00002a140)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:105 +0x12d
golang.org/x/tools/go/ast/inspector.(*Inspector).Preorder(0xc000682380, 0xc0006827a0, 0x2, 0x2, 0xc001167b18)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/ast/inspector/inspector.go:77 +0xa2
github.com/tommy-muehle/go-mnd.run(0xc000a2e540, 0xc000a2e540, 0x0, 0x0, 0x0)
	/home/ldez/sources/go/src/github.com/tommy-muehle/go-mnd/analyzer.go:103 +0x753
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc00647cdc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:690 +0x87e
sync.(*Once).doSlow(0xc00647cdc0, 0xc001ba0f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc00647cdc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc00647cdc0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7194 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb77c0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7196 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7a40)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7255 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a460)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7204 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76460)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7206 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f766e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7202 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f761e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7257 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a6e0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7203 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f76320)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7192 [runnable]:
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000eb7540)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:566
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

goroutine 7256 [semacquire]:
sync.runtime_Semacquire(0xc004d84398)
	/home/ldez/.gvm/gos/go1.15.7/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc004d84390)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/waitgroup.go:130 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll(0xc0025a9fe8, 0x1, 0x1)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:576 +0x14b
golang.org/x/tools/go/analysis/internal/checker.(*action).execOnce(0xc000f7a5a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:583 +0x79
sync.(*Once).doSlow(0xc000f7a5a0, 0xc000f88f90)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:66 +0xec
sync.(*Once).Do(...)
	/home/ldez/.gvm/gos/go1.15.7/src/sync/once.go:57
golang.org/x/tools/go/analysis/internal/checker.(*action).exec(0xc000f7a5a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:579 +0x65
golang.org/x/tools/go/analysis/internal/checker.execAll.func1(0xc000f7a5a0)
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:567 +0x34
created by golang.org/x/tools/go/analysis/internal/checker.execAll
	/home/ldez/sources/go/pkg/mod/golang.org/x/[email protected]/go/analysis/internal/checker/checker.go:573 +0x125

More

The problem is related to:

var constantDefinitions = map[int]bool{}

A lock on the access of the map fixes the problem.

How do you disable in tests?

This is very inconvenient in writing test cases. Please document the the comment tag to disable the check in a function.

Allow typical waitgroup patterns

Got the following error:

server.go:203:10: mnd: Magic number: 1, in <argument> detected (gomnd)
                wg.Add(1)

Imho that's too picky. Should consider if a solitary 1- in context of waitgroups or maybe even in any context- should not be considered magic.

Fails to detect some magic numbers

Here are some cases which mnd fails to detect:

package main

import (
	"fmt"
)

func main() {
	ok()

	fail1()
	fail2()
}

func ok() {
	res := 42 * 2
	fmt.Println(res)
}

func fail1() {
	const c = 24
	res := c + (42 * 10)
	fmt.Println(res)
}

func fail2() {
	res := -12
	fmt.Println(res)
}
$ go vet -vettool $(which mnd) ./...
# mndtest
./main.go:14:9: Magic number: 42, in <operation> detected
./main.go:14:14: Magic number: 2, in <operation> detected

Recommended way to handle os.Exit()?

Hello,
just updated golangci-lint and got the following error:

main.go:37:11: mnd: Magic number: 1, in <argument> detected (gomnd)
                os.Exit(1)

This seams a bit strict to me. How would you recommend handling this situation?
Not sure if it's actually a linter issue or I should update my code.

Thx

Support go.mod with tag prefixed with `v`

Hi,

I just noticed that the tag in this repo is not prefixed with v, so I am having the below issue

go: github.com/tommy-muehle/[email protected]: reading github.com/tommy-muehle/go-mnd/go.mod at revision v1.1.1: unknown revision v1.1.1

Let me know if you have any plan to tag with v prefix (e.g. v1.1.1)

Feature request: Nolint rule for special cases, e.g. base 2 numbers

Short summary

Base 2 numbers are fairly common in a lot of code bases.
2, 4, 8, 16, 32, 64 being the most common.

Another common pattern is base 10 numbers, 10, 100, 1000 etc.

It would be a nice to have feature to allow globally disabling mnd alerts on these cases.
e.g. in yaml

mnd:
  ignored-ranges:
    - base2
    - base10

Steps to reproduce the behavior

Write code using magic numbers

go-mnd version or commit ref

v2.5.1

Go version (output of 'go version')

1.22.2

Operating system / Environment

darwin / arm64 macos

Expected behavior

Allow skipping numerical ranges

Actual behavior

Need to add nolint mnd inline in a lot of places

Magic number in second function parameter not reported

Short summary

It seems magic number in the 2nd parameter of a function call are not reported.

Steps to reproduce the behavior

Using this code

package main

import (
	"log"
)

func test1(err int) {
	log.Printf("something %d", err)
}

func test2(str string, err int) {
	log.Printf("%s %d", str, err)
}

func test3(err int, str string) {
	log.Printf("%s %d", str, err)
}

func test() int {
	test1(123)
	test2("something else", 123)
	test3(123, "another something else")
	return 123
}
go vet -vettool $(which mnd) ./test.go

go-mnd version or commit ref

v1.3.0

Go version (output of 'go version')

go version go1.14.15 linux/amd64

Operating system / Environment

Linux Ubuntu 18.04, but case is reproducible with docker image too

docker run --rm -v "$PWD":/app -w /app tommymuehle/go-mnd:latest ./test.go
/app/test.go:20:8: Magic number: 123, in <argument> detected
/app/test.go:22:8: Magic number: 123, in <argument> detected
/app/test.go:23:9: Magic number: 123, in <return> detected

Expected behavior

The Magic number on line 21 should be reported:

test2("something else", 123)

Actual behavior

The Magic numbers are reported for other cases but not for magic number in 2nd function parameter.

The results seem to be random

Short summary

The results seem to be random: two calls don't provide the same results.

I found the issue during the analysis of this issue golangci/golangci-lint#1653

Steps to reproduce the behavior

# https://github.com/kopia/kopia
$ [email protected]:kopia/kopia.git
$ git checkout 1f3b8d4d
$ mnd ./...

go-mnd version or commit ref

I use my PR #19 because without that I was not able to run the CLI.

Go version (output of 'go version')

$ go version
go version go1.15.7 linux/amd64

Operating system / Environment

$ go version
go version go1.15.7 linux/amd64

Expected behavior

$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13

Actual behavior

linux
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
12
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
12
$ GOARCH=amd64 GOOS=linux mnd ./... 2>&1 | grep splitter.go  | wc -l
13
darwin
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
10
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
13
$ GOARCH=amd64 GOOS=darwin mnd ./... 2>&1 | grep splitter.go  | wc -l
12
windows
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
10
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
12
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13
$ GOARCH=amd64 GOOS=windows mnd ./... 2>&1 | grep splitter.go | wc -l
13

Literals in type conversions in block declarations should be okay

Thank you for creating/maintaining this tool. Very useful!

Short summary

When declaring a literal const or var with a type conversion in a block, mnd detects the argument of the type conversion as a magic number. This happens only when type conversions are used in block declarations: inline/standalone declarations don't trip up the detection.

Steps to reproduce the behavior

In main.go:

package main

// Could also be `var`.
const (
	// FooBlockLiteral is okay.
	FooBlockLiteral = 512
	// FooBlockTypeConversion trips up mnd:
	//
	//     Magic number: 512, in <argument> detected
	FooBlockTypeConversion = int64(512)
)

// FooLiteral is okay.
const FooLiteral = 512

// FooTypeConversion is also okay.
const FooTypeConversion = int64(512)

In go.mod:

module mnd-test

go 1.16

Then:

$ mnd .
/path/to/mnd-test/main.go:9:33: Magic number: 512, in <argument> detected

go-mnd version or commit ref

v2.3.1

Go version (output of 'go version')

go version go1.16.2 linux/amd64

Operating system / Environment

Debian 10.

Expected behavior

No/clean output from mnd:

$ mnd .

Actual behavior

See the error in the reproduction steps.

Floating point one `1.0` should not be considered as magic number

Short summary

If one need to calculate multiplicative inverse 1/x in float, then using const for 1.0 looks bad

Steps to reproduce the behavior

x := 100
fraction := 1.0 / x

go-mnd version or commit ref

v1.3.1-0.20200224220436-e6f9a994e8fa

Go version (output of 'go version')

go version go1.15.3 linux/amd64

Operating system / Environment

Debian bullseye/sid

Expected behavior

1.0 shouldn't be reported as magic number

Actual behavior

1.0 is reported as magic number

Go built-in functions are not recognized when excluding functions

Short summary

Go built-in functions, such as make([]string, 0, 10) are not recognized when excluding functions

Steps to reproduce the behavior

Create a function like

func example4() {
	a := make([]int, 0, 10)
	a[0] = 1
}

Run

$ go-mnd -checks=argument -ignored-functions=make`
Magic number: 10, in <argument> detected

go-mnd version or commit ref

v2.4.0

Go version (output of 'go version')

go version
go version go1.16.3 darwin/amd64

Operating system / Environment

macOS 10.15.7

Expected behavior

Arguments to make() should have been ignored

Actual behavior

Arguments to make() were checked

Handle digit separator `_`

Since Go 1.13, numbers may contain _ between digits.

It would be nice that when a number is added to the ignored list, all its variants containing _ be ignored as well: --ignored-numbers 1000 should match 1000 and 1_000.

Currently, we have to specify --ignored-numbers 1000,1_000 manually.

Go modules v2 compatibility

Short summary

As latest released version at the time of writing is v2.2.0, which do not include v2 subdirectory, currently running go get -u github.com/tommy-muehle/go-mnd/cmd/mnd pulls latest v1 version (v1.3.0), as it is by design with Go modules.

This may lead to confusion, as many users may user older version, without access to new features.

Steps to reproduce the behavior

Run go get -u github.com/tommy-muehle/go-mnd/cmd/mnd on a fresh system.

Go version (output of 'go version')

go version go1.15.3 linux/amd64

Operating system / Environment

$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

Expected behavior

Documented go get -u github.com/tommy-muehle/go-mnd/cmd/mnd and all imports should be changed to github.com/tommy-muehle/go-mnd/v2/cmd/mnd, including go.mod, so latest version is pulled.

This can be used as an example to follow: kubernetes/klog@2bed4d0#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6

time duration not considered a magic number

Currently when you define a time duration with a number it is considered a magic number.

timeToWaitForTask := 30 * time.Second

I would think this qualifies as not being a magic number since it is clear what you are using the number for. It also reads better than the desired state which would be this.

timeInSecondsToWait := 30
timetoWaitForTask := timeInSecondsToWait * time.Second

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.