Preparing report...

Report for github.com/aykevl/tinygo

A+    Excellent!    Found 117 issues across 553 files

Tweet

gofmt97%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo91%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

    • tinygo/stacksize/dwarf.go
    • Line 22: warning: cyclomatic complexity 26 of function parseFrames() is high (> 15) (gocyclo)
    • Line 181: warning: cyclomatic complexity 23 of function (*frameInfo).exec() is high (> 15) (gocyclo)
    • tinygo/loader/goroot.go
    • Line 128: warning: cyclomatic complexity 16 of function mergeDirectory() is high (> 15) (gocyclo)
    • Line 36: warning: cyclomatic complexity 16 of function GetCachedGoroot() is high (> 15) (gocyclo)
    • tinygo/interp/memory.go
    • Line 953: warning: cyclomatic complexity 40 of function (*rawValue).set() is high (> 15) (gocyclo)
    • Line 822: warning: cyclomatic complexity 39 of function (rawValue).toLLVMValue() is high (> 15) (gocyclo)
    • Line 116: warning: cyclomatic complexity 29 of function (*memoryView).markExternal() is high (> 15) (gocyclo)
    • Line 524: warning: cyclomatic complexity 21 of function (pointerValue).toLLVMValue() is high (> 15) (gocyclo)
    • Line 1142: warning: cyclomatic complexity 18 of function (*runner).getValue() is high (> 15) (gocyclo)
    • tinygo/cgo/libclang.go
    • Line 396: warning: cyclomatic complexity 57 of function (*cgoPackage).makeASTType() is high (> 15) (gocyclo)
    • Line 173: warning: cyclomatic complexity 22 of function tinygo_clang_globals_visitor() is high (> 15) (gocyclo)
    • tinygo/compiler/defer.go
    • Line 234: warning: cyclomatic complexity 19 of function (*builder).createRunDefers() is high (> 15) (gocyclo)
    • Line 77: warning: cyclomatic complexity 19 of function (*builder).createDefer() is high (> 15) (gocyclo)
    • tinygo/src/reflect/type.go
    • Line 65: warning: cyclomatic complexity 28 of function (Kind).String() is high (> 15) (gocyclo)
    • Line 565: warning: cyclomatic complexity 21 of function (rawType).Align() is high (> 15) (gocyclo)
    • Line 734: warning: cyclomatic complexity 20 of function (StructTag).Lookup() is high (> 15) (gocyclo)
    • Line 516: warning: cyclomatic complexity 20 of function (rawType).Size() is high (> 15) (gocyclo)
    • Line 641: warning: cyclomatic complexity 16 of function (rawType).Comparable() is high (> 15) (gocyclo)
    • tinygo/compiler/compiler.go
    • Line 1897: warning: cyclomatic complexity 107 of function (*builder).createBinOp() is high (> 15) (gocyclo)
    • Line 1416: warning: cyclomatic complexity 88 of function (*builder).createExpr() is high (> 15) (gocyclo)
    • Line 2380: warning: cyclomatic complexity 53 of function (*builder).createConvert() is high (> 15) (gocyclo)
    • Line 1114: warning: cyclomatic complexity 46 of function (*builder).createBuiltin() is high (> 15) (gocyclo)
    • Line 776: warning: cyclomatic complexity 43 of function (*builder).createFunction() is high (> 15) (gocyclo)
    • Line 1283: warning: cyclomatic complexity 35 of function (*builder).createFunctionCall() is high (> 15) (gocyclo)
    • Line 321: warning: cyclomatic complexity 31 of function (*compilerContext).getLLVMType() is high (> 15) (gocyclo)
    • Line 2267: warning: cyclomatic complexity 26 of function (*builder).createConst() is high (> 15) (gocyclo)
    • Line 1031: warning: cyclomatic complexity 22 of function (*builder).createInstruction() is high (> 15) (gocyclo)
    • Line 432: warning: cyclomatic complexity 20 of function (*compilerContext).createDIType() is high (> 15) (gocyclo)
    • Line 695: warning: cyclomatic complexity 16 of function (*compilerContext).createPackage() is high (> 15) (gocyclo)
    • tinygo/main.go
    • Line 1000: warning: cyclomatic complexity 79 of function main() is high (> 15) (gocyclo)
    • Line 722: warning: cyclomatic complexity 36 of function getDefaultPort() is high (> 15) (gocyclo)
    • Line 258: warning: cyclomatic complexity 35 of function Flash() is high (> 15) (gocyclo)
    • Line 396: warning: cyclomatic complexity 29 of function FlashGDB() is high (> 15) (gocyclo)
    • Line 881: warning: cyclomatic complexity 21 of function printCompilerError() is high (> 15) (gocyclo)
    • tinygo/builder/build.go
    • Line 81: warning: cyclomatic complexity 93 of function Build() is high (> 15) (gocyclo)
    • Line 820: warning: cyclomatic complexity 20 of function determineStackSizes() is high (> 15) (gocyclo)
    • tinygo/transform/coroutines.go
    • Line 765: warning: cyclomatic complexity 18 of function (*coroutineLoweringPass).lowerFuncCoro() is high (> 15) (gocyclo)
    • Line 463: warning: cyclomatic complexity 17 of function (*coroutineLoweringPass).analyzeFuncReturns() is high (> 15) (gocyclo)
    • tinygo/interp/interpreter.go
    • Line 15: warning: cyclomatic complexity 207 of function (*runner).run() is high (> 15) (gocyclo)
    • Line 890: warning: cyclomatic complexity 28 of function (*runner).runAtRuntime() is high (> 15) (gocyclo)
    • tinygo/compiler/symbol.go
    • Line 55: warning: cyclomatic complexity 28 of function (*compilerContext).getFunction() is high (> 15) (gocyclo)
    • Line 225: warning: cyclomatic complexity 26 of function (*functionInfo).parsePragmas() is high (> 15) (gocyclo)

golint86%

Golint is a linter for Go source code.

    • tinygo/src/os/env.go
    • Line 7: warning: exported function Getenv should have comment or be unexported (golint)
    • Line 12: warning: exported function LookupEnv should have comment or be unexported (golint)
    • tinygo/src/runtime/arch_amd64.go
    • Line 5: warning: exported const GOARCH should have comment or be unexported (golint)
    • Line 7: warning: comment on exported const TargetBits should be of the form "TargetBits ..." (golint)
    • tinygo/src/sync/map.go
    • Line 6: warning: exported type Map should have comment or be unexported (golint)
    • Line 11: warning: exported method Map.Delete should have comment or be unexported (golint)
    • Line 17: warning: exported method Map.Load should have comment or be unexported (golint)
    • Line 24: warning: exported method Map.LoadOrStore should have comment or be unexported (golint)
    • Line 37: warning: exported method Map.Store should have comment or be unexported (golint)
    • Line 46: warning: exported method Map.Range should have comment or be unexported (golint)
    • tinygo/src/reflect/type.go
    • Line 31: warning: exported type Kind should have comment or be unexported (golint)
    • Line 320: warning: exported function TypeOf should have comment or be unexported (golint)
    • Line 324: warning: exported function PtrTo should have comment or be unexported (golint)
    • Line 343: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • tinygo/src/os/errors.go
    • Line 9: warning: exported var ErrInvalid should have comment or be unexported (golint)
    • Line 13: warning: comment on exported var ErrUnsupported should be of the form "ErrUnsupported ..." (golint)
    • Line 24: warning: exported function NewSyscallError should have comment or be unexported (golint)
    • Line 41: warning: exported function IsExist should have comment or be unexported (golint)
    • Line 45: warning: exported function IsNotExist should have comment or be unexported (golint)
    • Line 49: warning: exported function IsPermission should have comment or be unexported (golint)
    • tinygo/src/runtime/runtime.go
    • Line 7: warning: exported const Compiler should have comment or be unexported (golint)
    • Line 16: warning: exported function GOMAXPROCS should have comment or be unexported (golint)
    • Line 21: warning: exported function GOROOT should have comment or be unexported (golint)
    • Line 32: warning: don't use underscores in Go names; func os_runtime_args should be osRuntimeArgs (golint)
    • Line 94: warning: don't use underscores in Go names; func os_sigpipe should be osSigpipe (golint)
    • tinygo/src/device/asm.go
    • Line 3: warning: comment on exported function Asm should be of the form "Asm ..." (golint)
    • Line 8: warning: comment on exported function AsmFull should be of the form "AsmFull ..." (golint)
    • tinygo/src/syscall/proc_hosted.go
    • Line 8: warning: exported function Getuid should have comment or be unexported (golint)
    • Line 9: warning: exported function Geteuid should have comment or be unexported (golint)
    • Line 10: warning: exported function Getgid should have comment or be unexported (golint)
    • Line 11: warning: exported function Getegid should have comment or be unexported (golint)
    • Line 12: warning: exported function Getpid should have comment or be unexported (golint)
    • Line 13: warning: exported function Getppid should have comment or be unexported (golint)
    • Line 17: warning: don't use underscores in Go names; func libc_getuid should be libcGetuid (golint)
    • Line 21: warning: don't use underscores in Go names; func libc_getgid should be libcGetgid (golint)
    • Line 25: warning: don't use underscores in Go names; func libc_geteuid should be libcGeteuid (golint)
    • Line 29: warning: don't use underscores in Go names; func libc_getegid should be libcGetegid (golint)
    • Line 33: warning: don't use underscores in Go names; func libc_getpid should be libcGetpid (golint)
    • Line 37: warning: don't use underscores in Go names; func libc_getppid should be libcGetppid (golint)
    • tinygo/tools/gen-device-avr/gen-device-avr.go
    • Line 17: warning: exported type AVRToolsDeviceFile should have comment or be unexported (golint)
    • Line 55: warning: exported type Device should have comment or be unexported (golint)
    • Line 83: warning: exported type Interrupt should have comment or be unexported (golint)
    • Line 89: warning: exported type Peripheral should have comment or be unexported (golint)
    • Line 95: warning: exported type Register should have comment or be unexported (golint)
    • Line 102: warning: exported type RegisterVariant should have comment or be unexported (golint)
    • Line 107: warning: exported type Bitfield should have comment or be unexported (golint)
    • tinygo/builder/esp.go
    • Line 88: warning: don't use underscores in Go names; struct field segment_count should be segmentCount (golint)
    • Line 89: warning: don't use underscores in Go names; struct field spi_mode should be spiMode (golint)
    • Line 90: warning: don't use underscores in Go names; struct field spi_speed_size should be spiSpeedSize (golint)
    • Line 91: warning: don't use underscores in Go names; struct field entry_addr should be entryAddr (golint)
    • Line 92: warning: don't use underscores in Go names; struct field wp_pin should be wpPin (golint)
    • Line 93: warning: don't use underscores in Go names; struct field spi_pin_drv should be spiPinDrv (golint)
    • Line 95: warning: don't use underscores in Go names; struct field hash_appended should be hashAppended (golint)
    • Line 111: warning: don't use underscores in Go names; struct field segment_count should be segmentCount (golint)
    • Line 112: warning: don't use underscores in Go names; struct field spi_mode should be spiMode (golint)
    • Line 113: warning: don't use underscores in Go names; struct field spi_speed_size should be spiSpeedSize (golint)
    • Line 114: warning: don't use underscores in Go names; struct field entry_addr should be entryAddr (golint)
    • tinygo/src/runtime/runtime_unix.go
    • Line 29: warning: don't use underscores in Go names; func parameter clk_id should be clkID (golint)
    • Line 37: warning: don't use underscores in Go names; struct field tv_sec should be tvSec (golint)
    • Line 38: warning: don't use underscores in Go names; struct field tv_nsec should be tvNsec (golint)
    • Line 41: warning: exported const CLOCK_MONOTONIC_RAW should have comment or be unexported (golint)
    • Line 95: warning: don't use underscores in Go names; func syscall_runtime_envs should be syscallRuntimeEnvs (golint)
    • Line 155: warning: don't use underscores in Go names; func syscall_Exit should be syscallExit (golint)
    • tinygo/src/examples/test/test.go
    • Line 7: warning: exported type Thing should have comment or be unexported (golint)
    • Line 15: warning: exported type Stringer should have comment or be unexported (golint)
    • Line 19: warning: exported type Foo should have comment or be unexported (golint)
    • Line 21: warning: exported type Number should have comment or be unexported (golint)
    • Line 23: warning: exported method Number.Double should have comment or be unexported (golint)
    • Line 27: warning: exported type Doubler should have comment or be unexported (golint)
    • Line 31: warning: exported const SIX should have comment or be unexported (golint)
    • tinygo/loader/loader.go
    • Line 428: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • tinygo/src/runtime/math.go
    • Line 7: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 11: warning: don't use underscores in Go names; func math_Asin should be mathAsin (golint)
    • Line 14: warning: don't use underscores in Go names; func math_asin should be mathAsin (golint)
    • Line 17: warning: don't use underscores in Go names; func math_Asinh should be mathAsinh (golint)
    • Line 20: warning: don't use underscores in Go names; func math_asinh should be mathAsinh (golint)
    • Line 23: warning: don't use underscores in Go names; func math_Acos should be mathAcos (golint)
    • Line 26: warning: don't use underscores in Go names; func math_acos should be mathAcos (golint)
    • Line 29: warning: don't use underscores in Go names; func math_Acosh should be mathAcosh (golint)
    • Line 32: warning: don't use underscores in Go names; func math_acosh should be mathAcosh (golint)
    • Line 35: warning: don't use underscores in Go names; func math_Atan should be mathAtan (golint)
    • Line 38: warning: don't use underscores in Go names; func math_atan should be mathAtan (golint)
    • Line 41: warning: don't use underscores in Go names; func math_Atanh should be mathAtanh (golint)
    • Line 44: warning: don't use underscores in Go names; func math_atanh should be mathAtanh (golint)
    • Line 47: warning: don't use underscores in Go names; func math_Atan2 should be mathAtan2 (golint)
    • Line 50: warning: don't use underscores in Go names; func math_atan2 should be mathAtan2 (golint)
    • Line 53: warning: don't use underscores in Go names; func math_Cbrt should be mathCbrt (golint)
    • Line 56: warning: don't use underscores in Go names; func math_cbrt should be mathCbrt (golint)
    • Line 59: warning: don't use underscores in Go names; func math_Ceil should be mathCeil (golint)
    • Line 67: warning: don't use underscores in Go names; func llvm_ceil should be llvmCeil (golint)
    • Line 70: warning: don't use underscores in Go names; func math_ceil should be mathCeil (golint)
    • Line 73: warning: don't use underscores in Go names; func math_Cos should be mathCos (golint)
    • Line 76: warning: don't use underscores in Go names; func math_cos should be mathCos (golint)
    • Line 79: warning: don't use underscores in Go names; func math_Cosh should be mathCosh (golint)
    • Line 82: warning: don't use underscores in Go names; func math_cosh should be mathCosh (golint)
    • Line 85: warning: don't use underscores in Go names; func math_Erf should be mathErf (golint)
    • Line 88: warning: don't use underscores in Go names; func math_erf should be mathErf (golint)
    • Line 91: warning: don't use underscores in Go names; func math_Erfc should be mathErfc (golint)
    • Line 94: warning: don't use underscores in Go names; func math_erfc should be mathErfc (golint)
    • Line 97: warning: don't use underscores in Go names; func math_Exp should be mathExp (golint)
    • Line 100: warning: don't use underscores in Go names; func math_exp should be mathExp (golint)
    • Line 103: warning: don't use underscores in Go names; func math_Expm1 should be mathExpm1 (golint)
    • Line 106: warning: don't use underscores in Go names; func math_expm1 should be mathExpm1 (golint)
    • Line 109: warning: don't use underscores in Go names; func math_Exp2 should be mathExp2 (golint)
    • Line 112: warning: don't use underscores in Go names; func math_exp2 should be mathExp2 (golint)
    • Line 115: warning: don't use underscores in Go names; func math_Floor should be mathFloor (golint)
    • Line 123: warning: don't use underscores in Go names; func llvm_floor should be llvmFloor (golint)
    • Line 126: warning: don't use underscores in Go names; func math_floor should be mathFloor (golint)
    • Line 129: warning: don't use underscores in Go names; func math_Frexp should be mathFrexp (golint)
    • Line 132: warning: don't use underscores in Go names; func math_frexp should be mathFrexp (golint)
    • Line 135: warning: don't use underscores in Go names; func math_Hypot should be mathHypot (golint)
    • Line 138: warning: don't use underscores in Go names; func math_hypot should be mathHypot (golint)
    • Line 141: warning: don't use underscores in Go names; func math_Ldexp should be mathLdexp (golint)
    • Line 144: warning: don't use underscores in Go names; func math_ldexp should be mathLdexp (golint)
    • Line 147: warning: don't use underscores in Go names; func math_Log should be mathLog (golint)
    • Line 150: warning: don't use underscores in Go names; func math_log should be mathLog (golint)
    • Line 153: warning: don't use underscores in Go names; func math_Log1p should be mathLog1p (golint)
    • Line 156: warning: don't use underscores in Go names; func math_log1p should be mathLog1p (golint)
    • Line 159: warning: don't use underscores in Go names; func math_Log10 should be mathLog10 (golint)
    • Line 162: warning: don't use underscores in Go names; func math_log10 should be mathLog10 (golint)
    • Line 165: warning: don't use underscores in Go names; func math_Log2 should be mathLog2 (golint)
    • Line 168: warning: don't use underscores in Go names; func math_log2 should be mathLog2 (golint)
    • Line 171: warning: don't use underscores in Go names; func math_Max should be mathMax (golint)
    • Line 179: warning: don't use underscores in Go names; func llvm_maximum should be llvmMaximum (golint)
    • Line 182: warning: don't use underscores in Go names; func math_max should be mathMax (golint)
    • Line 185: warning: don't use underscores in Go names; func math_Min should be mathMin (golint)
    • Line 193: warning: don't use underscores in Go names; func llvm_minimum should be llvmMinimum (golint)
    • Line 196: warning: don't use underscores in Go names; func math_min should be mathMin (golint)
    • Line 199: warning: don't use underscores in Go names; func math_Mod should be mathMod (golint)
    • Line 202: warning: don't use underscores in Go names; func math_mod should be mathMod (golint)
    • Line 205: warning: don't use underscores in Go names; func math_Modf should be mathModf (golint)
    • Line 208: warning: don't use underscores in Go names; func math_modf should be mathModf (golint)
    • Line 211: warning: don't use underscores in Go names; func math_Pow should be mathPow (golint)
    • Line 214: warning: don't use underscores in Go names; func math_pow should be mathPow (golint)
    • Line 217: warning: don't use underscores in Go names; func math_Remainder should be mathRemainder (golint)
    • Line 220: warning: don't use underscores in Go names; func math_remainder should be mathRemainder (golint)
    • Line 223: warning: don't use underscores in Go names; func math_Sin should be mathSin (golint)
    • Line 226: warning: don't use underscores in Go names; func math_sin should be mathSin (golint)
    • Line 229: warning: don't use underscores in Go names; func math_Sinh should be mathSinh (golint)
    • Line 232: warning: don't use underscores in Go names; func math_sinh should be mathSinh (golint)
    • Line 235: warning: don't use underscores in Go names; func math_Sqrt should be mathSqrt (golint)
    • Line 243: warning: don't use underscores in Go names; func llvm_sqrt should be llvmSqrt (golint)
    • Line 246: warning: don't use underscores in Go names; func math_sqrt should be mathSqrt (golint)
    • Line 249: warning: don't use underscores in Go names; func math_Tan should be mathTan (golint)
    • Line 252: warning: don't use underscores in Go names; func math_tan should be mathTan (golint)
    • Line 255: warning: don't use underscores in Go names; func math_Tanh should be mathTanh (golint)
    • Line 258: warning: don't use underscores in Go names; func math_tanh should be mathTanh (golint)
    • Line 261: warning: don't use underscores in Go names; func math_Trunc should be mathTrunc (golint)
    • Line 269: warning: don't use underscores in Go names; func llvm_trunc should be llvmTrunc (golint)
    • Line 272: warning: don't use underscores in Go names; func math_trunc should be mathTrunc (golint)
    • tinygo/main.go
    • Line 152: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • Line 230: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 249: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 585: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 828: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • tinygo/src/runtime/stack.go
    • Line 3: warning: exported type Func should have comment or be unexported (golint)
    • Line 6: warning: exported function FuncForPC should have comment or be unexported (golint)
    • Line 10: warning: exported method Func.Name should have comment or be unexported (golint)
    • Line 14: warning: exported function Caller should have comment or be unexported (golint)
    • Line 18: warning: exported function Stack should have comment or be unexported (golint)
    • tinygo/interp/interpreter.go
    • Line 89: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • tinygo/src/syscall/errno.go
    • Line 24: warning: exported method Errno.Temporary should have comment or be unexported (golint)
    • Line 28: warning: exported method Errno.Timeout should have comment or be unexported (golint)
    • tinygo/src/os/file.go
    • Line 86: warning: exported method File.ReadAt should have comment or be unexported (golint)
    • Line 134: warning: exported method File.SyscallConn should have comment or be unexported (golint)
    • Line 144: warning: exported const PathSeparator should have comment (or a comment on this block) or be unexported (golint)
    • Line 165: warning: exported const O_RDONLY should have comment (or a comment on this block) or be unexported (golint)
    • tinygo/stacksize/stacksize.go
    • Line 258: warning: receiver name node should be consistent with previous receiver name n for CallNode (golint)
    • Line 267: warning: receiver name node should be consistent with previous receiver name n for CallNode (golint)
    • tinygo/compiler/channel.go
    • Line 76: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 97: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • tinygo/compileopts/config.go
    • Line 366: warning: exported method Config.LLVMFeatures should have comment or be unexported (golint)
    • Line 370: warning: exported type TestConfig should have comment or be unexported (golint)
    • tinygo/src/net/net.go
    • Line 174: warning: exported type AddrError should have comment or be unexported (golint)
    • Line 190: warning: exported method AddrError.Timeout should have comment or be unexported (golint)
    • Line 191: warning: exported method AddrError.Temporary should have comment or be unexported (golint)
    • tinygo/src/device/arm64/arm64.go
    • Line 3: warning: comment on exported function Asm should be of the form "Asm ..." (golint)
    • Line 8: warning: comment on exported function AsmFull should be of the form "AsmFull ..." (golint)
    • Line 23: warning: comment on exported function SVCall0 should be of the form "SVCall0 ..." (golint)
    • Line 26: warning: comment on exported function SVCall1 should be of the form "SVCall1 ..." (golint)
    • Line 29: warning: comment on exported function SVCall2 should be of the form "SVCall2 ..." (golint)
    • Line 32: warning: comment on exported function SVCall3 should be of the form "SVCall3 ..." (golint)
    • Line 35: warning: comment on exported function SVCall4 should be of the form "SVCall4 ..." (golint)
    • tinygo/src/sync/once.go
    • Line 3: warning: exported type Once should have comment or be unexported (golint)
    • Line 8: warning: exported method Once.Do should have comment or be unexported (golint)
    • tinygo/src/runtime/symtab.go
    • Line 3: warning: exported type Frames should have comment or be unexported (golint)
    • Line 7: warning: exported type Frame should have comment or be unexported (golint)
    • Line 14: warning: exported function CallersFrames should have comment or be unexported (golint)
    • Line 18: warning: exported method Frames.Next should have comment or be unexported (golint)
    • tinygo/src/machine/machine_generic.go
    • Line 8: warning: exported var SPI0 should have comment or be unexported (golint)
    • Line 14: warning: comment on exported var Serial should be of the form "Serial ..." (golint)
    • Line 21: warning: exported const PinInput should have comment (or a comment on this block) or be unexported (golint)
    • Line 27: warning: exported method Pin.Configure should have comment or be unexported (golint)
    • Line 31: warning: exported method Pin.Set should have comment or be unexported (golint)
    • Line 35: warning: exported method Pin.Get should have comment or be unexported (golint)
    • Line 48: warning: exported type SPI should have comment or be unexported (golint)
    • Line 52: warning: exported type SPIConfig should have comment or be unexported (golint)
    • Line 60: warning: exported method SPI.Configure should have comment or be unexported (golint)
    • Line 123: warning: exported type UART should have comment or be unexported (golint)
    • tinygo/src/sync/mutex.go
    • Line 5: warning: a blank import should be only in a main or test package, or have a comment justifying it (golint)
    • Line 11: warning: exported type Mutex should have comment or be unexported (golint)
    • Line 19: warning: exported method Mutex.Lock should have comment or be unexported (golint)
    • Line 30: warning: exported method Mutex.Unlock should have comment or be unexported (golint)
    • Line 43: warning: exported type RWMutex should have comment or be unexported (golint)
    • Line 48: warning: exported method RWMutex.Lock should have comment or be unexported (golint)
    • Line 52: warning: exported method RWMutex.Unlock should have comment or be unexported (golint)
    • Line 56: warning: exported method RWMutex.RLock should have comment or be unexported (golint)
    • Line 63: warning: exported method RWMutex.RUnlock should have comment or be unexported (golint)
    • Line 73: warning: exported type Locker should have comment or be unexported (golint)
    • tinygo/src/machine/machine.go
    • Line 6: warning: exported var ErrInvalidInputPin should have comment or be unexported (golint)
    • Line 18: warning: exported type PinConfig should have comment or be unexported (golint)
    • Line 45: warning: exported type ADC should have comment or be unexported (golint)
    • tinygo/src/sync/cond.go
    • Line 5: warning: exported type Cond should have comment or be unexported (golint)
    • Line 19: warning: exported function NewCond should have comment or be unexported (golint)
    • Line 42: warning: exported method Cond.Signal should have comment or be unexported (golint)
    • Line 46: warning: exported method Cond.Broadcast should have comment or be unexported (golint)
    • Line 52: warning: exported method Cond.Wait should have comment or be unexported (golint)
    • tinygo/loader/errors.go
    • Line 27: warning: comment on exported type NoTestFilesError should be of the form "NoTestFilesError ..." (with optional leading article) (golint)
    • tinygo/compiler/calls.go
    • Line 67: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 91: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 115: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 290: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • tinygo/src/device/avr/avr.go
    • Line 3: warning: comment on exported function Asm should be of the form "Asm ..." (golint)
    • Line 8: warning: comment on exported function AsmFull should be of the form "AsmFull ..." (golint)
    • tinygo/src/internal/bytealg/bytealg.go
    • Line 6: warning: exported const MaxLen should have comment (or a comment on this block) or be unexported (golint)
    • Line 48: warning: comment on exported function CountString should be of the form "CountString ..." (golint)
    • Line 95: warning: comment on exported function IndexByte should be of the form "IndexByte ..." (golint)
    • Line 106: warning: comment on exported function IndexByteString should be of the form "IndexByteString ..." (golint)
    • Line 117: warning: comment on exported function IndexString should be of the form "IndexString ..." (golint)
    • tinygo/compileopts/target.go
    • Line 19: warning: comment on exported type TargetSpec should be of the form "TargetSpec ..." (with optional leading article) (golint)
    • Line 163: warning: comment on exported function LoadTarget should be of the form "LoadTarget ..." (golint)
    • Line 236: warning: error var WindowsBuildNotSupportedErr should have name of the form ErrFoo (golint)
    • tinygo/builder/sizes.go
    • Line 55: warning: don't use underscores in Go names; var bind_i should be bindI (golint)
    • Line 56: warning: don't use underscores in Go names; var bind_j should be bindJ (golint)
    • tinygo/src/reflect/value.go
    • Line 18: warning: exported type Value should have comment or be unexported (golint)
    • Line 38: warning: exported function Indirect should have comment or be unexported (golint)
    • Line 51: warning: exported function ValueOf should have comment or be unexported (golint)
    • Line 60: warning: exported method Value.Interface should have comment or be unexported (golint)
    • Line 82: warning: exported method Value.Type should have comment or be unexported (golint)
    • Line 86: warning: comment on exported method Value.RawType should be of the form "RawType ..." (golint)
    • Line 94: warning: exported method Value.Kind should have comment or be unexported (golint)
    • Line 149: warning: exported method Value.IsValid should have comment or be unexported (golint)
    • Line 153: warning: exported method Value.CanInterface should have comment or be unexported (golint)
    • Line 158: warning: exported method Value.CanAddr should have comment or be unexported (golint)
    • Line 162: warning: exported method Value.Addr should have comment or be unexported (golint)
    • Line 166: warning: exported method Value.CanSet should have comment or be unexported (golint)
    • Line 170: warning: exported method Value.Bool should have comment or be unexported (golint)
    • Line 175: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 183: warning: exported method Value.Int should have comment or be unexported (golint)
    • Line 188: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 194: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 200: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 206: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 212: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 220: warning: exported method Value.Uint should have comment or be unexported (golint)
    • Line 225: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 231: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 237: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 243: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 249: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 255: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 263: warning: exported method Value.Float should have comment or be unexported (golint)
    • Line 270: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 279: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 289: warning: exported method Value.Complex should have comment or be unexported (golint)
    • Line 296: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 323: warning: exported method Value.Bytes should have comment or be unexported (golint)
    • Line 327: warning: exported method Value.Slice should have comment or be unexported (golint)
    • Line 380: warning: exported method Value.Elem should have comment or be unexported (golint)
    • Line 461: warning: exported method Value.Index should have comment or be unexported (golint)
    • Line 558: warning: exported method Value.NumMethod should have comment or be unexported (golint)
    • Line 562: warning: exported method Value.OverflowFloat should have comment or be unexported (golint)
    • Line 566: warning: exported method Value.MapKeys should have comment or be unexported (golint)
    • Line 570: warning: exported method Value.MapIndex should have comment or be unexported (golint)
    • Line 574: warning: exported method Value.MapRange should have comment or be unexported (golint)
    • Line 578: warning: exported type MapIter should have comment or be unexported (golint)
    • Line 581: warning: exported method MapIter.Key should have comment or be unexported (golint)
    • Line 585: warning: exported method MapIter.Value should have comment or be unexported (golint)
    • Line 589: warning: exported method MapIter.Next should have comment or be unexported (golint)
    • Line 593: warning: exported method Value.Set should have comment or be unexported (golint)
    • Line 607: warning: exported method Value.SetBool should have comment or be unexported (golint)
    • Line 617: warning: exported method Value.SetInt should have comment or be unexported (golint)
    • Line 635: warning: exported method Value.SetUint should have comment or be unexported (golint)
    • Line 655: warning: exported method Value.SetFloat should have comment or be unexported (golint)
    • Line 667: warning: exported method Value.SetComplex should have comment or be unexported (golint)
    • Line 679: warning: exported method Value.SetString should have comment or be unexported (golint)
    • Line 689: warning: exported method Value.SetBytes should have comment or be unexported (golint)
    • Line 693: warning: exported method Value.SetCap should have comment or be unexported (golint)
    • Line 697: warning: exported method Value.SetLen should have comment or be unexported (golint)
    • Line 707: warning: exported method Value.OverflowInt should have comment or be unexported (golint)
    • Line 711: warning: exported method Value.OverflowUint should have comment or be unexported (golint)
    • Line 715: warning: exported method Value.Convert should have comment or be unexported (golint)
    • Line 719: warning: exported function MakeSlice should have comment or be unexported (golint)
    • Line 723: warning: exported function Zero should have comment or be unexported (golint)
    • Line 742: warning: exported type SliceHeader should have comment or be unexported (golint)
    • Line 756: warning: exported type StringHeader should have comment or be unexported (golint)
    • Line 768: warning: exported type ValueError should have comment or be unexported (golint)
    • Line 826: warning: exported method Value.SetMapIndex should have comment or be unexported (golint)
    • Line 835: warning: exported method Value.FieldByName should have comment or be unexported (golint)
    • Line 844: warning: exported method Value.Call should have comment or be unexported (golint)
    • tinygo/src/device/arm/arm.go
    • Line 1: warning: package comment should be of the form "Package arm ..." (golint)
    • Line 40: warning: comment on exported function Asm should be of the form "Asm ..." (golint)
    • Line 45: warning: comment on exported function AsmFull should be of the form "AsmFull ..." (golint)
    • Line 60: warning: comment on exported function SVCall0 should be of the form "SVCall0 ..." (golint)
    • Line 63: warning: comment on exported function SVCall1 should be of the form "SVCall1 ..." (golint)
    • Line 66: warning: comment on exported function SVCall2 should be of the form "SVCall2 ..." (golint)
    • Line 69: warning: comment on exported function SVCall3 should be of the form "SVCall3 ..." (golint)
    • Line 72: warning: comment on exported function SVCall4 should be of the form "SVCall4 ..." (golint)
    • Line 76: warning: exported const SCS_BASE should have comment (or a comment on this block) or be unexported (golint)
    • Line 81: warning: comment on exported type NVIC_Type should be of the form "NVIC_Type ..." (with optional leading article) (golint)
    • Line 85: warning: don't use underscores in Go names; type NVIC_Type should be NVICType (golint)
    • Line 99: warning: exported var NVIC should have comment or be unexported (golint)
    • Line 101: warning: comment on exported type SYST_Type should be of the form "SYST_Type ..." (with optional leading article) (golint)
    • Line 104: warning: don't use underscores in Go names; type SYST_Type should be SYSTType (golint)
    • Line 111: warning: exported var SYST should have comment or be unexported (golint)
    • Line 116: warning: don't use underscores in Go names; const SYST_CSR_ENABLE_Pos should be SYSTCSRENABLEPos (golint)
    • Line 117: warning: don't use underscores in Go names; const SYST_CSR_ENABLE_Msk should be SYSTCSRENABLEMsk (golint)
    • Line 119: warning: don't use underscores in Go names; const SYST_CSR_TICKINT_Pos should be SYSTCSRTICKINTPos (golint)
    • Line 120: warning: don't use underscores in Go names; const SYST_CSR_TICKINT_Msk should be SYSTCSRTICKINTMsk (golint)
    • Line 122: warning: don't use underscores in Go names; const SYST_CSR_CLKSOURCE_Pos should be SYSTCSRCLKSOURCEPos (golint)
    • Line 123: warning: don't use underscores in Go names; const SYST_CSR_CLKSOURCE_Msk should be SYSTCSRCLKSOURCEMsk (golint)
    • Line 125: warning: don't use underscores in Go names; const SYST_CSR_COUNTFLAG_Pos should be SYSTCSRCOUNTFLAGPos (golint)
    • Line 126: warning: don't use underscores in Go names; const SYST_CSR_COUNTFLAG_Msk should be SYSTCSRCOUNTFLAGMsk (golint)
    • Line 130: warning: don't use underscores in Go names; const SYST_RVR_RELOAD_Pos should be SYSTRVRRELOADPos (golint)
    • Line 131: warning: don't use underscores in Go names; const SYST_RVR_RELOAD_Msk should be SYSTRVRRELOADMsk (golint)
    • Line 134: warning: don't use underscores in Go names; const SYST_CVR_CURRENT_Pos should be SYSTCVRCURRENTPos (golint)
    • Line 135: warning: don't use underscores in Go names; const SYST_CVR_CURRENT_Msk should be SYSTCVRCURRENTMsk (golint)
    • Line 138: warning: don't use underscores in Go names; const SYST_CALIB_TENMS_Pos should be SYSTCALIBTENMSPos (golint)
    • Line 139: warning: don't use underscores in Go names; const SYST_CALIB_TENMS_Msk should be SYSTCALIBTENMSMsk (golint)
    • Line 140: warning: don't use underscores in Go names; const SYST_CALIB_SKEW_Pos should be SYSTCALIBSKEWPos (golint)
    • Line 141: warning: don't use underscores in Go names; const SYST_CALIB_SKEW_Msk should be SYSTCALIBSKEWMsk (golint)
    • Line 143: warning: don't use underscores in Go names; const SYST_CALIB_NOREF_Pos should be SYSTCALIBNOREFPos (golint)
    • Line 144: warning: don't use underscores in Go names; const SYST_CALIB_NOREF_Msk should be SYSTCALIBNOREFMsk (golint)
    • Line 148: warning: comment on exported function EnableIRQ should be of the form "EnableIRQ ..." (golint)
    • Line 153: warning: comment on exported function DisableIRQ should be of the form "DisableIRQ ..." (golint)
    • Line 158: warning: comment on exported function SetPriority should be of the form "SetPriority ..." (golint)
    • Line 192: warning: comment on exported function SetupSystemTimer should be of the form "SetupSystemTimer ..." (golint)
    • tinygo/src/net/dial.go
    • Line 8: warning: exported type Dialer should have comment or be unexported (golint)
    • Line 15: warning: exported function Dial should have comment or be unexported (golint)
    • Line 19: warning: exported function Listen should have comment or be unexported (golint)
    • Line 23: warning: exported method Dialer.DialContext should have comment or be unexported (golint)
    • tinygo/src/testing/testing.go
    • Line 240: warning: exported function TestMain should have comment or be unexported (golint)
    • Line 244: warning: exported function MainStart should have comment or be unexported (golint)
    • Line 250: warning: exported type InternalExample should have comment or be unexported (golint)
    • tinygo/src/device/riscv/riscv.go
    • Line 3: warning: comment on exported function Asm should be of the form "Asm ..." (golint)
    • Line 8: warning: comment on exported function AsmFull should be of the form "AsmFull ..." (golint)
    • tinygo/src/internal/reflectlite/reflect.go
    • Line 5: warning: exported function Swapper should have comment or be unexported (golint)
    • Line 9: warning: exported type Kind should have comment or be unexported (golint)
    • Line 10: warning: exported type Type should have comment or be unexported (golint)
    • Line 11: warning: exported type Value should have comment or be unexported (golint)
    • Line 14: warning: exported const Invalid should have comment (or a comment on this block) or be unexported (golint)
    • Line 43: warning: exported function ValueOf should have comment or be unexported (golint)
    • Line 47: warning: exported function TypeOf should have comment or be unexported (golint)
    • Line 51: warning: exported type ValueError should have comment or be unexported (golint)
    • tinygo/src/runtime/pprof/pprof.go
    • Line 11: warning: exported var ErrUnimplemented should have comment or be unexported (golint)
    • Line 13: warning: exported type Profile should have comment or be unexported (golint)
    • Line 16: warning: exported function StartCPUProfile should have comment or be unexported (golint)
    • Line 20: warning: exported function StopCPUProfile should have comment or be unexported (golint)
    • Line 23: warning: exported function Lookup should have comment or be unexported (golint)
    • Line 27: warning: exported method Profile.WriteTo should have comment or be unexported (golint)
    • tinygo/src/runtime/poll.go
    • Line 6: warning: don't use underscores in Go names; func poll_runtime_pollServerInit should be pollRuntimePollServerInit (golint)
    • Line 11: warning: don't use underscores in Go names; func poll_runtime_pollOpen should be pollRuntimePollOpen (golint)
    • Line 16: warning: don't use underscores in Go names; func poll_runtime_pollClose should be pollRuntimePollClose (golint)
    • Line 21: warning: don't use underscores in Go names; func poll_runtime_pollUnblock should be pollRuntimePollUnblock (golint)
    • tinygo/cgo/libclang.go
    • Line 173: warning: don't use underscores in Go names; func parameter client_data should be clientData (golint)
    • Line 584: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 605: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 705: warning: don't use underscores in Go names; func parameter client_data should be clientData (golint)
    • Line 793: warning: don't use underscores in Go names; func parameter client_data should be clientData (golint)
    • tinygo/tools/gen-device-svd/gen-device-svd.go
    • Line 21: warning: exported type SVDFile should have comment or be unexported (golint)
    • Line 34: warning: exported type SVDPeripheral should have comment or be unexported (golint)
    • Line 48: warning: exported type SVDRegister should have comment or be unexported (golint)
    • Line 60: warning: exported type SVDField should have comment or be unexported (golint)
    • Line 79: warning: exported type SVDCluster should have comment or be unexported (golint)
    • Line 90: warning: exported type Device should have comment or be unexported (golint)
    • Line 96: warning: exported type Metadata should have comment or be unexported (golint)
    • Line 110: warning: exported type Interrupt should have comment or be unexported (golint)
    • Line 118: warning: exported type Peripheral should have comment or be unexported (golint)
    • Line 140: warning: exported type Bitfield should have comment or be unexported (golint)
    • Line 663: warning: exported type Register should have comment or be unexported (golint)
    • Line 668: warning: exported function NewRegister should have comment or be unexported (golint)
    • tinygo/src/sync/waitgroup.go
    • Line 5: warning: exported type WaitGroup should have comment or be unexported (golint)
    • Line 10: warning: exported method WaitGroup.Add should have comment or be unexported (golint)
    • Line 39: warning: exported method WaitGroup.Done should have comment or be unexported (golint)
    • Line 43: warning: exported method WaitGroup.Wait should have comment or be unexported (golint)
    • tinygo/src/testing/benchmark.go
    • Line 19: warning: exported type InternalBenchmark should have comment or be unexported (golint)
    • Line 24: warning: exported method B.SetBytes should have comment or be unexported (golint)
    • Line 28: warning: exported method B.ResetTimer should have comment or be unexported (golint)
    • Line 32: warning: exported method B.Run should have comment or be unexported (golint)
    • tinygo/src/runtime/os_linux.go
    • Line 5: warning: exported const GOOS should have comment or be unexported (golint)
    • Line 9: warning: don't use underscores in Go names; const flag_PROT_READ should be flagPROTREAD (golint)
    • Line 10: warning: don't use underscores in Go names; const flag_PROT_WRITE should be flagPROTWRITE (golint)
    • Line 11: warning: don't use underscores in Go names; const flag_MAP_PRIVATE should be flagMAPPRIVATE (golint)
    • Line 12: warning: don't use underscores in Go names; const flag_MAP_ANONYMOUS should be flagMAPANONYMOUS (golint)
    • tinygo/compiler/compiler.go
    • Line 1407: warning: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) (golint)
    • Line 1437: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1677: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1913: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1919: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1963: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1983: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1989: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 1995: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 2001: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 2518: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 2561: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • tinygo/src/runtime/volatile/register.go
    • Line 6: warning: comment on exported type Register8 should be of the form "Register8 ..." (with optional leading article) (golint)
    • Line 70: warning: exported type Register16 should have comment or be unexported (golint)
    • Line 132: warning: exported type Register32 should have comment or be unexported (golint)
    • Line 194: warning: exported type Register64 should have comment or be unexported (golint)

license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign100%

IneffAssign detects ineffectual assignments in Go code.

No problems detected. Good job!


misspell100%

Misspell Finds commonly misspelled English words

No problems detected. Good job!