Preparing report...

Report for github.com/fadion/aria

A+    Excellent!    Found 7 issues across 22 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!


gocyclo86%

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.

    • aria/lexer/lexer.go
    • Line 64: warning: cyclomatic complexity 66 of function (*Lexer).NextToken() is high (> 15) (gocyclo)
    • Line 380: warning: cyclomatic complexity 16 of function (*Lexer).consumeNumeric() is high (> 15) (gocyclo)
    • aria/interpreter/interpreter.go
    • Line 38: warning: cyclomatic complexity 35 of function (*Interpreter).Interpret() is high (> 15) (gocyclo)
    • Line 1091: warning: cyclomatic complexity 34 of function (*Interpreter).runInfix() is high (> 15) (gocyclo)
    • Line 714: warning: cyclomatic complexity 26 of function (*Interpreter).runFunction() is high (> 15) (gocyclo)
    • Line 1161: warning: cyclomatic complexity 25 of function (*Interpreter).runIntegerInfix() is high (> 15) (gocyclo)
    • Line 366: warning: cyclomatic complexity 16 of function (*Interpreter).runAssignSubscript() is high (> 15) (gocyclo)

golint77%

Golint is a linter for Go source code.

    • aria/ast/ast.go
    • Line 34: warning: exported method Program.TokenLexeme should have comment or be unexported (golint)
    • Line 37: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • Line 42: warning: exported method Program.TokenLocation should have comment or be unexported (golint)
    • Line 46: warning: exported method Program.Inspect should have comment or be unexported (golint)
    • Line 64: warning: exported method Let.TokenLexeme should have comment or be unexported (golint)
    • Line 65: warning: exported method Let.TokenLocation should have comment or be unexported (golint)
    • Line 66: warning: exported method Let.Inspect should have comment or be unexported (golint)
    • Line 88: warning: exported method Var.TokenLexeme should have comment or be unexported (golint)
    • Line 89: warning: exported method Var.TokenLocation should have comment or be unexported (golint)
    • Line 90: warning: exported method Var.Inspect should have comment or be unexported (golint)
    • Line 111: warning: exported method Identifier.TokenLexeme should have comment or be unexported (golint)
    • Line 112: warning: exported method Identifier.TokenLocation should have comment or be unexported (golint)
    • Line 113: warning: exported method Identifier.Inspect should have comment or be unexported (golint)
    • Line 123: warning: exported method String.TokenLexeme should have comment or be unexported (golint)
    • Line 124: warning: exported method String.TokenLocation should have comment or be unexported (golint)
    • Line 125: warning: exported method String.Inspect should have comment or be unexported (golint)
    • Line 134: warning: exported method Atom.TokenLexeme should have comment or be unexported (golint)
    • Line 135: warning: exported method Atom.TokenLocation should have comment or be unexported (golint)
    • Line 136: warning: exported method Atom.Inspect should have comment or be unexported (golint)
    • Line 145: warning: exported method Integer.TokenLexeme should have comment or be unexported (golint)
    • Line 146: warning: exported method Integer.TokenLocation should have comment or be unexported (golint)
    • Line 147: warning: exported method Integer.Inspect should have comment or be unexported (golint)
    • Line 156: warning: exported method Float.TokenLexeme should have comment or be unexported (golint)
    • Line 157: warning: exported method Float.TokenLocation should have comment or be unexported (golint)
    • Line 158: warning: exported method Float.Inspect should have comment or be unexported (golint)
    • Line 167: warning: exported method Boolean.TokenLexeme should have comment or be unexported (golint)
    • Line 168: warning: exported method Boolean.TokenLocation should have comment or be unexported (golint)
    • Line 169: warning: exported method Boolean.Inspect should have comment or be unexported (golint)
    • Line 178: warning: exported method Array.TokenLexeme should have comment or be unexported (golint)
    • Line 179: warning: exported method Array.TokenLocation should have comment or be unexported (golint)
    • Line 180: warning: exported method Array.Inspect should have comment or be unexported (golint)
    • Line 198: warning: exported method Subscript.TokenLexeme should have comment or be unexported (golint)
    • Line 199: warning: exported method Subscript.TokenLocation should have comment or be unexported (golint)
    • Line 200: warning: exported method Subscript.Inspect should have comment or be unexported (golint)
    • Line 211: warning: comment on exported type Assign should be of the form "Assign ..." (with optional leading article) (golint)
    • Line 220: warning: exported method Assign.TokenLexeme should have comment or be unexported (golint)
    • Line 221: warning: exported method Assign.TokenLocation should have comment or be unexported (golint)
    • Line 222: warning: exported method Assign.Inspect should have comment or be unexported (golint)
    • Line 240: warning: exported method Pipe.TokenLexeme should have comment or be unexported (golint)
    • Line 241: warning: exported method Pipe.TokenLocation should have comment or be unexported (golint)
    • Line 242: warning: exported method Pipe.Inspect should have comment or be unexported (golint)
    • Line 259: warning: exported method Dictionary.TokenLexeme should have comment or be unexported (golint)
    • Line 260: warning: exported method Dictionary.TokenLocation should have comment or be unexported (golint)
    • Line 261: warning: exported method Dictionary.Inspect should have comment or be unexported (golint)
    • Line 282: warning: exported method Nil.TokenLexeme should have comment or be unexported (golint)
    • Line 283: warning: exported method Nil.TokenLocation should have comment or be unexported (golint)
    • Line 284: warning: exported method Nil.Inspect should have comment or be unexported (golint)
    • Line 293: warning: exported method Return.TokenLexeme should have comment or be unexported (golint)
    • Line 294: warning: exported method Return.TokenLocation should have comment or be unexported (golint)
    • Line 295: warning: exported method Return.Inspect should have comment or be unexported (golint)
    • Line 316: warning: exported method If.TokenLexeme should have comment or be unexported (golint)
    • Line 317: warning: exported method If.TokenLocation should have comment or be unexported (golint)
    • Line 318: warning: exported method If.Inspect should have comment or be unexported (golint)
    • Line 343: warning: exported method Switch.TokenLexeme should have comment or be unexported (golint)
    • Line 344: warning: exported method Switch.TokenLocation should have comment or be unexported (golint)
    • Line 345: warning: exported method Switch.Inspect should have comment or be unexported (golint)
    • Line 378: warning: exported method SwitchCase.TokenLexeme should have comment or be unexported (golint)
    • Line 379: warning: exported method SwitchCase.TokenLocation should have comment or be unexported (golint)
    • Line 380: warning: exported method SwitchCase.Inspect should have comment or be unexported (golint)
    • Line 400: warning: exported method For.TokenLexeme should have comment or be unexported (golint)
    • Line 401: warning: exported method For.TokenLocation should have comment or be unexported (golint)
    • Line 402: warning: exported method For.Inspect should have comment or be unexported (golint)
    • Line 431: warning: exported method Module.TokenLexeme should have comment or be unexported (golint)
    • Line 432: warning: exported method Module.TokenLocation should have comment or be unexported (golint)
    • Line 433: warning: exported method Module.Inspect should have comment or be unexported (golint)
    • Line 454: warning: exported method ModuleAccess.TokenLexeme should have comment or be unexported (golint)
    • Line 455: warning: exported method ModuleAccess.TokenLocation should have comment or be unexported (golint)
    • Line 456: warning: exported method ModuleAccess.Inspect should have comment or be unexported (golint)
    • Line 476: warning: exported method Function.TokenLexeme should have comment or be unexported (golint)
    • Line 477: warning: exported method Function.TokenLocation should have comment or be unexported (golint)
    • Line 478: warning: exported method Function.Inspect should have comment or be unexported (golint)
    • Line 507: warning: comment on exported type FunctionParameter should be of the form "FunctionParameter ..." (with optional leading article) (golint)
    • Line 516: warning: exported method FunctionParameter.TokenLexeme should have comment or be unexported (golint)
    • Line 517: warning: exported method FunctionParameter.TokenLocation should have comment or be unexported (golint)
    • Line 518: warning: exported method FunctionParameter.Inspect should have comment or be unexported (golint)
    • Line 542: warning: exported method FunctionCall.TokenLexeme should have comment or be unexported (golint)
    • Line 543: warning: exported method FunctionCall.TokenLocation should have comment or be unexported (golint)
    • Line 544: warning: exported method FunctionCall.Inspect should have comment or be unexported (golint)
    • Line 561: warning: exported method Break.TokenLexeme should have comment or be unexported (golint)
    • Line 562: warning: exported method Break.TokenLocation should have comment or be unexported (golint)
    • Line 563: warning: exported method Break.Inspect should have comment or be unexported (golint)
    • Line 571: warning: exported method Continue.TokenLexeme should have comment or be unexported (golint)
    • Line 572: warning: exported method Continue.TokenLocation should have comment or be unexported (golint)
    • Line 573: warning: exported method Continue.Inspect should have comment or be unexported (golint)
    • Line 575: warning: comment on exported type Placeholder should be of the form "Placeholder ..." (with optional leading article) (golint)
    • Line 581: warning: exported method Placeholder.TokenLexeme should have comment or be unexported (golint)
    • Line 582: warning: exported method Placeholder.TokenLocation should have comment or be unexported (golint)
    • Line 583: warning: exported method Placeholder.Inspect should have comment or be unexported (golint)
    • Line 594: warning: exported method Import.TokenLexeme should have comment or be unexported (golint)
    • Line 595: warning: exported method Import.TokenLocation should have comment or be unexported (golint)
    • Line 596: warning: exported method Import.Inspect should have comment or be unexported (golint)
    • Line 613: warning: exported method Is.TokenLexeme should have comment or be unexported (golint)
    • Line 614: warning: exported method Is.TokenLocation should have comment or be unexported (golint)
    • Line 615: warning: exported method Is.Inspect should have comment or be unexported (golint)
    • Line 635: warning: exported method As.TokenLexeme should have comment or be unexported (golint)
    • Line 636: warning: exported method As.TokenLocation should have comment or be unexported (golint)
    • Line 637: warning: exported method As.Inspect should have comment or be unexported (golint)
    • Line 657: warning: exported method ExpressionStatement.TokenLexeme should have comment or be unexported (golint)
    • Line 658: warning: exported method ExpressionStatement.TokenLocation should have comment or be unexported (golint)
    • Line 659: warning: exported method ExpressionStatement.Inspect should have comment or be unexported (golint)
    • Line 674: warning: exported method BlockStatement.TokenLexeme should have comment or be unexported (golint)
    • Line 675: warning: exported method BlockStatement.TokenLocation should have comment or be unexported (golint)
    • Line 676: warning: exported method BlockStatement.Inspect should have comment or be unexported (golint)
    • Line 693: warning: exported method ExpressionList.TokenLexeme should have comment or be unexported (golint)
    • Line 694: warning: exported method ExpressionList.TokenLocation should have comment or be unexported (golint)
    • Line 695: warning: exported method ExpressionList.Inspect should have comment or be unexported (golint)
    • Line 715: warning: exported method IdentifierList.TokenLexeme should have comment or be unexported (golint)
    • Line 716: warning: exported method IdentifierList.TokenLocation should have comment or be unexported (golint)
    • Line 717: warning: exported method IdentifierList.Inspect should have comment or be unexported (golint)
    • Line 739: warning: exported method PrefixExpression.TokenLexeme should have comment or be unexported (golint)
    • Line 740: warning: exported method PrefixExpression.TokenLocation should have comment or be unexported (golint)
    • Line 741: warning: exported method PrefixExpression.Inspect should have comment or be unexported (golint)
    • Line 762: warning: exported method InfixExpression.TokenLexeme should have comment or be unexported (golint)
    • Line 763: warning: exported method InfixExpression.TokenLocation should have comment or be unexported (golint)
    • Line 764: warning: exported method InfixExpression.Inspect should have comment or be unexported (golint)
    • aria/interpreter/interpreter.go
    • Line 264: 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)
    • aria/interpreter/types.go
    • Line 48: warning: exported method ModuleType.Type should have comment or be unexported (golint)
    • Line 49: warning: exported method ModuleType.Inspect should have comment or be unexported (golint)
    • Line 66: warning: exported method IntegerType.Type should have comment or be unexported (golint)
    • Line 67: warning: exported method IntegerType.Inspect should have comment or be unexported (golint)
    • Line 74: warning: exported method FloatType.Type should have comment or be unexported (golint)
    • Line 75: warning: exported method FloatType.Inspect should have comment or be unexported (golint)
    • Line 82: warning: exported method StringType.Type should have comment or be unexported (golint)
    • Line 83: warning: exported method StringType.Inspect should have comment or be unexported (golint)
    • Line 90: warning: exported method AtomType.Type should have comment or be unexported (golint)
    • Line 91: warning: exported method AtomType.Inspect should have comment or be unexported (golint)
    • Line 98: warning: exported method BooleanType.Type should have comment or be unexported (golint)
    • Line 99: warning: exported method BooleanType.Inspect should have comment or be unexported (golint)
    • Line 106: warning: exported method ArrayType.Type should have comment or be unexported (golint)
    • Line 107: warning: exported method ArrayType.Inspect should have comment or be unexported (golint)
    • Line 127: warning: exported method DictionaryType.Type should have comment or be unexported (golint)
    • Line 128: warning: exported method DictionaryType.Inspect should have comment or be unexported (golint)
    • Line 146: warning: exported method NilType.Type should have comment or be unexported (golint)
    • Line 147: warning: exported method NilType.Inspect should have comment or be unexported (golint)
    • Line 158: warning: exported method FunctionType.Type should have comment or be unexported (golint)
    • Line 159: warning: exported method FunctionType.Inspect should have comment or be unexported (golint)
    • Line 186: warning: exported method ReturnType.Type should have comment or be unexported (golint)
    • Line 187: warning: exported method ReturnType.Inspect should have comment or be unexported (golint)
    • Line 192: warning: exported method BreakType.Type should have comment or be unexported (golint)
    • Line 193: warning: exported method BreakType.Inspect should have comment or be unexported (golint)
    • Line 198: warning: exported method ContinueType.Type should have comment or be unexported (golint)
    • Line 199: warning: exported method ContinueType.Inspect should have comment or be unexported (golint)
    • Line 204: warning: exported method PlaceholderType.Type should have comment or be unexported (golint)
    • Line 205: warning: exported method PlaceholderType.Inspect 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!