Preparing report...

Report for github.com/skx/monkey

A+    Excellent!    Found 16 issues across 30 files

Tweet

gofmt100%

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

No problems detected. Good job!


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!


gocyclo90%

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.

    • monkey/evaluator/evaluator.go
    • Line 38: warning: cyclomatic complexity 51 of function EvalContext() is high (> 15) (gocyclo)
    • Line 289: warning: cyclomatic complexity 23 of function evalInfixExpression() is high (> 15) (gocyclo)
    • Line 413: warning: cyclomatic complexity 20 of function evalIntegerInfixExpression() is high (> 15) (gocyclo)
    • Line 464: warning: cyclomatic complexity 17 of function evalFloatInfixExpression() is high (> 15) (gocyclo)
    • Line 504: warning: cyclomatic complexity 17 of function evalFloatIntegerInfixExpression() is high (> 15) (gocyclo)
    • Line 544: warning: cyclomatic complexity 17 of function evalIntegerFloatInfixExpression() is high (> 15) (gocyclo)
    • Line 655: warning: cyclomatic complexity 17 of function evalAssignStatement() is high (> 15) (gocyclo)

golint100%

Golint is a linter for Go source code.

No problems detected. Good job!


license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign50%

IneffAssign detects ineffectual assignments in Go code.

    • monkey/evaluator/stdlib_env.go
    • Line 23: warning: String not declared by package object (ineffassign)
    • Line 24: warning: String not declared by package object (ineffassign)
    • Line 43: warning: String not declared by package object (ineffassign)
    • Line 44: warning: String not declared by package object (ineffassign)
    • Line 62: warning: String not declared by package object (ineffassign)
    • Line 63: warning: String not declared by package object (ineffassign)
    • Line 23: warning: String not declared by package object (ineffassign)
    • Line 24: warning: String not declared by package object (ineffassign)
    • Line 43: warning: String not declared by package object (ineffassign)
    • Line 44: warning: String not declared by package object (ineffassign)
    • Line 62: warning: String not declared by package object (ineffassign)
    • Line 63: warning: String not declared by package object (ineffassign)
    • monkey/evaluator/evaluator.go
    • Line 169: warning: String not declared by package object (ineffassign)
    • Line 352: warning: String not declared by package object (ineffassign)
    • Line 395: warning: String not declared by package object (ineffassign)
    • Line 396: warning: String not declared by package object (ineffassign)
    • Line 585: warning: String not declared by package object (ineffassign)
    • Line 586: warning: String not declared by package object (ineffassign)
    • Line 602: warning: String not declared by package object (ineffassign)
    • Line 604: warning: String not declared by package object (ineffassign)
    • Line 1019: warning: String not declared by package object (ineffassign)
    • Line 1020: warning: String not declared by package object (ineffassign)
    • Line 1023: warning: String not declared by package object (ineffassign)
    • Line 1026: warning: String not declared by package object (ineffassign)
    • Line 1074: warning: String not declared by package object (ineffassign)
    • Line 1088: warning: String not declared by package object (ineffassign)
    • Line 1273: warning: String not declared by package object (ineffassign)
    • Line 169: warning: String not declared by package object (ineffassign)
    • Line 352: warning: String not declared by package object (ineffassign)
    • Line 395: warning: String not declared by package object (ineffassign)
    • Line 396: warning: String not declared by package object (ineffassign)
    • Line 585: warning: String not declared by package object (ineffassign)
    • Line 586: warning: String not declared by package object (ineffassign)
    • Line 602: warning: String not declared by package object (ineffassign)
    • Line 604: warning: String not declared by package object (ineffassign)
    • Line 1019: warning: String not declared by package object (ineffassign)
    • Line 1020: warning: String not declared by package object (ineffassign)
    • Line 1023: warning: String not declared by package object (ineffassign)
    • Line 1026: warning: String not declared by package object (ineffassign)
    • Line 1074: warning: String not declared by package object (ineffassign)
    • Line 1088: warning: String not declared by package object (ineffassign)
    • Line 1273: warning: String not declared by package object (ineffassign)
    • monkey/evaluator/evaluator_test.go
    • Line 98: warning: String not declared by package object (ineffassign)
    • Line 338: warning: String not declared by package object (ineffassign)
    • Line 511: warning: String not declared by package object (ineffassign)
    • Line 512: warning: String not declared by package object (ineffassign)
    • Line 513: warning: String not declared by package object (ineffassign)
    • monkey/object/object_file.go
    • Line 135: warning: undeclared name: String (ineffassign)
    • Line 153: warning: undeclared name: String (ineffassign)
    • Line 160: warning: undeclared name: String (ineffassign)
    • Line 166: warning: undeclared name: String (ineffassign)
    • Line 168: warning: undeclared name: String (ineffassign)
    • Line 135: warning: undeclared name: String (ineffassign)
    • Line 153: warning: undeclared name: String (ineffassign)
    • Line 160: warning: undeclared name: String (ineffassign)
    • Line 166: warning: undeclared name: String (ineffassign)
    • Line 168: warning: undeclared name: String (ineffassign)
    • monkey/evaluator/stdlib_core.go
    • Line 28: warning: String not declared by package object (ineffassign)
    • Line 29: warning: String not declared by package object (ineffassign)
    • Line 55: warning: String not declared by package object (ineffassign)
    • Line 56: warning: String not declared by package object (ineffassign)
    • Line 109: warning: String not declared by package object (ineffassign)
    • Line 110: warning: String not declared by package object (ineffassign)
    • Line 143: warning: String not declared by package object (ineffassign)
    • Line 174: warning: String not declared by package object (ineffassign)
    • Line 175: warning: String not declared by package object (ineffassign)
    • Line 191: warning: String not declared by package object (ineffassign)
    • Line 218: warning: String not declared by package object (ineffassign)
    • Line 248: warning: String not declared by package object (ineffassign)
    • Line 249: warning: String not declared by package object (ineffassign)
    • Line 259: warning: String not declared by package object (ineffassign)
    • Line 260: warning: String not declared by package object (ineffassign)
    • Line 286: warning: String not declared by package object (ineffassign)
    • Line 287: warning: String not declared by package object (ineffassign)
    • Line 310: warning: String not declared by package object (ineffassign)
    • Line 352: warning: String not declared by package object (ineffassign)
    • Line 373: warning: String not declared by package object (ineffassign)
    • Line 389: warning: String not declared by package object (ineffassign)
    • Line 414: warning: String not declared by package object (ineffassign)
    • Line 420: warning: String not declared by package object (ineffassign)
    • Line 425: warning: String not declared by package object (ineffassign)
    • Line 426: warning: String not declared by package object (ineffassign)
    • Line 432: warning: String not declared by package object (ineffassign)
    • Line 433: warning: String not declared by package object (ineffassign)
    • Line 446: warning: String not declared by package object (ineffassign)
    • Line 447: warning: String not declared by package object (ineffassign)
    • Line 550: warning: String not declared by package object (ineffassign)
    • Line 560: warning: String not declared by package object (ineffassign)
    • Line 561: warning: String not declared by package object (ineffassign)
    • Line 563: warning: String not declared by package object (ineffassign)
    • Line 565: warning: String not declared by package object (ineffassign)
    • Line 567: warning: String not declared by package object (ineffassign)
    • Line 569: warning: String not declared by package object (ineffassign)
    • Line 571: warning: String not declared by package object (ineffassign)
    • Line 573: warning: String not declared by package object (ineffassign)
    • Line 575: warning: String not declared by package object (ineffassign)
    • Line 577: warning: String not declared by package object (ineffassign)
    • Line 579: warning: String not declared by package object (ineffassign)
    • Line 28: warning: String not declared by package object (ineffassign)
    • Line 29: warning: String not declared by package object (ineffassign)
    • Line 55: warning: String not declared by package object (ineffassign)
    • Line 56: warning: String not declared by package object (ineffassign)
    • Line 109: warning: String not declared by package object (ineffassign)
    • Line 110: warning: String not declared by package object (ineffassign)
    • Line 143: warning: String not declared by package object (ineffassign)
    • Line 174: warning: String not declared by package object (ineffassign)
    • Line 175: warning: String not declared by package object (ineffassign)
    • Line 191: warning: String not declared by package object (ineffassign)
    • Line 218: warning: String not declared by package object (ineffassign)
    • Line 248: warning: String not declared by package object (ineffassign)
    • Line 249: warning: String not declared by package object (ineffassign)
    • Line 259: warning: String not declared by package object (ineffassign)
    • Line 260: warning: String not declared by package object (ineffassign)
    • Line 286: warning: String not declared by package object (ineffassign)
    • Line 287: warning: String not declared by package object (ineffassign)
    • Line 310: warning: String not declared by package object (ineffassign)
    • Line 352: warning: String not declared by package object (ineffassign)
    • Line 373: warning: String not declared by package object (ineffassign)
    • Line 389: warning: String not declared by package object (ineffassign)
    • Line 414: warning: String not declared by package object (ineffassign)
    • Line 420: warning: String not declared by package object (ineffassign)
    • Line 425: warning: String not declared by package object (ineffassign)
    • Line 426: warning: String not declared by package object (ineffassign)
    • Line 432: warning: String not declared by package object (ineffassign)
    • Line 433: warning: String not declared by package object (ineffassign)
    • Line 446: warning: String not declared by package object (ineffassign)
    • Line 447: warning: String not declared by package object (ineffassign)
    • Line 550: warning: String not declared by package object (ineffassign)
    • Line 560: warning: String not declared by package object (ineffassign)
    • Line 561: warning: String not declared by package object (ineffassign)
    • Line 563: warning: String not declared by package object (ineffassign)
    • Line 565: warning: String not declared by package object (ineffassign)
    • Line 567: warning: String not declared by package object (ineffassign)
    • Line 569: warning: String not declared by package object (ineffassign)
    • Line 571: warning: String not declared by package object (ineffassign)
    • Line 573: warning: String not declared by package object (ineffassign)
    • Line 575: warning: String not declared by package object (ineffassign)
    • Line 577: warning: String not declared by package object (ineffassign)
    • Line 579: warning: String not declared by package object (ineffassign)
    • monkey/evaluator/stdlib_file.go
    • Line 15: warning: String not declared by package object (ineffassign)
    • Line 26: warning: String not declared by package object (ineffassign)
    • Line 15: warning: String not declared by package object (ineffassign)
    • Line 26: warning: String not declared by package object (ineffassign)
    • monkey/monkey.go
    • Line 34: warning: String not declared by package object (ineffassign)
    • Line 44: warning: String not declared by package object (ineffassign)

misspell100%

Misspell Finds commonly misspelled English words

No problems detected. Good job!