Preparing report...

Report for github.com/albrow/fo

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


gocyclo59%

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.

    • fo/printer/printer.go
    • Line 336: warning: cyclomatic complexity 32 of function (*printer).writeCommentPrefix() is high (> 15) (gocyclo)
    • Line 873: warning: cyclomatic complexity 27 of function (*printer).print() is high (> 15) (gocyclo)
    • Line 491: warning: cyclomatic complexity 26 of function stripCommonPrefix() is high (> 15) (gocyclo)
    • Line 1070: warning: cyclomatic complexity 24 of function (*printer).printNode() is high (> 15) (gocyclo)
    • Line 740: warning: cyclomatic complexity 19 of function (*printer).intersperseComments() is high (> 15) (gocyclo)
    • Line 1196: warning: cyclomatic complexity 18 of function (*trimmer).Write() is high (> 15) (gocyclo)
    • fo/ast/scope.go
    • Line 94: warning: cyclomatic complexity 21 of function (*Object).Pos() is high (> 15) (gocyclo)
    • fo/types/resolver.go
    • Line 208: warning: cyclomatic complexity 49 of function (*Checker).collectObjects() is high (> 15) (gocyclo)
    • Line 138: warning: cyclomatic complexity 21 of function (*Checker).importPackage() is high (> 15) (gocyclo)
    • fo/types/expr.go
    • Line 1004: warning: cyclomatic complexity 121 of function (*Checker).exprInternal() is high (> 15) (gocyclo)
    • Line 192: warning: cyclomatic complexity 57 of function representableConst() is high (> 15) (gocyclo)
    • Line 765: warning: cyclomatic complexity 28 of function (*Checker).binary() is high (> 15) (gocyclo)
    • Line 479: warning: cyclomatic complexity 28 of function (*Checker).convertUntyped() is high (> 15) (gocyclo)
    • Line 629: warning: cyclomatic complexity 23 of function (*Checker).shift() is high (> 15) (gocyclo)
    • Line 361: warning: cyclomatic complexity 20 of function (*Checker).updateExprType() is high (> 15) (gocyclo)
    • fo/types/return.go
    • Line 117: warning: cyclomatic complexity 30 of function hasBreak() is high (> 15) (gocyclo)
    • Line 18: warning: cyclomatic complexity 28 of function (*Checker).isTerminating() is high (> 15) (gocyclo)
    • fo/scanner/scanner.go
    • Line 604: warning: cyclomatic complexity 51 of function (*Scanner).Scan() is high (> 15) (gocyclo)
    • Line 293: warning: cyclomatic complexity 20 of function (*Scanner).scanNumber() is high (> 15) (gocyclo)
    • fo/ast/print.go
    • Line 145: warning: cyclomatic complexity 25 of function (*printer).print() is high (> 15) (gocyclo)
    • fo/astutil/imports.go
    • Line 30: warning: cyclomatic complexity 33 of function AddNamedImport() is high (> 15) (gocyclo)
    • Line 206: warning: cyclomatic complexity 33 of function DeleteNamedImport() is high (> 15) (gocyclo)
    • fo/printer/nodes.go
    • Line 690: warning: cyclomatic complexity 53 of function (*printer).expr1() is high (> 15) (gocyclo)
    • Line 1106: warning: cyclomatic complexity 40 of function (*printer).stmt() is high (> 15) (gocyclo)
    • Line 126: warning: cyclomatic complexity 39 of function (*printer).exprList() is high (> 15) (gocyclo)
    • Line 400: warning: cyclomatic complexity 31 of function (*printer).fieldList() is high (> 15) (gocyclo)
    • Line 522: warning: cyclomatic complexity 19 of function walkBinary() is high (> 15) (gocyclo)
    • fo/parser/parser.go
    • Line 907: warning: cyclomatic complexity 24 of function (*parser).parseParameterList() is high (> 15) (gocyclo)
    • Line 713: warning: cyclomatic complexity 21 of function (*parser).parseFieldDecl() is high (> 15) (gocyclo)
    • Line 1717: warning: cyclomatic complexity 20 of function (*parser).parsePrimaryExpr() is high (> 15) (gocyclo)
    • Line 2415: warning: cyclomatic complexity 17 of function (*parser).parseStmt() is high (> 15) (gocyclo)
    • Line 1614: warning: cyclomatic complexity 17 of function (*parser).checkExpr() is high (> 15) (gocyclo)
    • Line 1394: warning: cyclomatic complexity 16 of function (*parser).parseBracketExpr() is high (> 15) (gocyclo)
    • fo/types/call.go
    • Line 319: warning: cyclomatic complexity 42 of function (*Checker).selector() is high (> 15) (gocyclo)
    • Line 17: warning: cyclomatic complexity 21 of function (*Checker).call() is high (> 15) (gocyclo)
    • fo/types/generics.go
    • Line 147: warning: cyclomatic complexity 17 of function (*Checker).concreteType() is high (> 15) (gocyclo)
    • Line 342: warning: cyclomatic complexity 16 of function (*Checker).replaceTypes() is high (> 15) (gocyclo)
    • fo/constant/value.go
    • Line 1013: warning: cyclomatic complexity 57 of function BinaryOp() is high (> 15) (gocyclo)
    • Line 1249: warning: cyclomatic complexity 27 of function Compare() is high (> 15) (gocyclo)
    • Line 942: warning: cyclomatic complexity 21 of function match() is high (> 15) (gocyclo)
    • Line 852: warning: cyclomatic complexity 20 of function UnaryOp() is high (> 15) (gocyclo)
    • Line 380: warning: cyclomatic complexity 17 of function MakeFromLiteral() is high (> 15) (gocyclo)
    • fo/types/typexpr.go
    • Line 260: warning: cyclomatic complexity 29 of function (*Checker).typExprInternal() is high (> 15) (gocyclo)
    • Line 23: warning: cyclomatic complexity 21 of function (*Checker).ident() is high (> 15) (gocyclo)
    • Line 785: warning: cyclomatic complexity 17 of function (*Checker).structType() is high (> 15) (gocyclo)
    • Line 621: warning: cyclomatic complexity 17 of function (*Checker).interfaceType() is high (> 15) (gocyclo)
    • fo/types/labels.go
    • Line 91: warning: cyclomatic complexity 39 of function (*Checker).blockBranches() is high (> 15) (gocyclo)
    • fo/types/decl.go
    • Line 457: warning: cyclomatic complexity 27 of function (*Checker).declStmt() is high (> 15) (gocyclo)
    • Line 318: warning: cyclomatic complexity 19 of function (*Checker).addMethodDecls() is high (> 15) (gocyclo)
    • Line 390: warning: cyclomatic complexity 16 of function (*Checker).funcDecl() is high (> 15) (gocyclo)
    • fo/astutil/enclosing.go
    • Line 484: warning: cyclomatic complexity 67 of function NodeDescription() is high (> 15) (gocyclo)
    • Line 187: warning: cyclomatic complexity 67 of function childrenOf() is high (> 15) (gocyclo)
    • Line 63: warning: cyclomatic complexity 20 of function PathEnclosingInterval() is high (> 15) (gocyclo)

golint67%

Golint is a linter for Go source code.

    • fo/internal/gccgoimporter/gccgoinstallation.go
    • Line 18: warning: comment on exported type GccgoInstallation should be of the form "GccgoInstallation ..." (with optional leading article) (golint)
    • Line 30: warning: comment on exported method GccgoInstallation.InitFromDriver should be of the form "InitFromDriver ..." (golint)
    • Line 69: warning: comment on exported method GccgoInstallation.SearchPaths should be of the form "SearchPaths ..." (golint)
    • Line 92: warning: comment on exported method GccgoInstallation.GetImporter should be of the form "GetImporter ..." (golint)
    • fo/types/sizes.go
    • Line 49: warning: exported method StdSizes.Alignof should have comment or be unexported (golint)
    • Line 93: warning: exported method StdSizes.Offsetsof should have comment or be unexported (golint)
    • Line 121: warning: exported method StdSizes.Sizeof should have comment or be unexported (golint)
    • fo/examples/list/main.go
    • Line 18: warning: don't use underscores in Go names; type Element__int should be ElementInt (golint)
    • Line 18: warning: exported type Element__int should have comment or be unexported (golint)
    • Line 26: warning: exported method Element__int.Next should have comment or be unexported (golint)
    • Line 33: warning: exported method Element__int.Prev should have comment or be unexported (golint)
    • Line 40: warning: don't use underscores in Go names; type List__int should be ListInt (golint)
    • Line 40: warning: exported type List__int should have comment or be unexported (golint)
    • Line 45: warning: exported method List__int.Init should have comment or be unexported (golint)
    • Line 52: warning: exported function New__int should have comment or be unexported (golint)
    • Line 52: warning: don't use underscores in Go names; func New__int should be NewInt (golint)
    • Line 56: warning: exported method List__int.Len should have comment or be unexported (golint)
    • Line 58: warning: exported method List__int.Front should have comment or be unexported (golint)
    • Line 65: warning: exported method List__int.Back should have comment or be unexported (golint)
    • Line 103: warning: exported method List__int.Remove should have comment or be unexported (golint)
    • Line 112: warning: exported method List__int.PushFront should have comment or be unexported (golint)
    • Line 117: warning: exported method List__int.PushBack should have comment or be unexported (golint)
    • Line 122: warning: exported method List__int.InsertBefore should have comment or be unexported (golint)
    • Line 130: warning: exported method List__int.InsertAfter should have comment or be unexported (golint)
    • Line 138: warning: exported method List__int.MoveToFront should have comment or be unexported (golint)
    • Line 146: warning: exported method List__int.MoveToBack should have comment or be unexported (golint)
    • Line 154: warning: exported method List__int.MoveBefore should have comment or be unexported (golint)
    • Line 161: warning: exported method List__int.MoveAfter should have comment or be unexported (golint)
    • Line 168: warning: exported method List__int.PushBackList should have comment or be unexported (golint)
    • Line 175: warning: exported method List__int.PushFrontList should have comment or be unexported (golint)
    • fo/scanner/scanner.go
    • Line 90: warning: comment on exported type Mode should be of the form "Mode ..." (with optional leading article) (golint)
    • Line 96: warning: exported const ScanComments should have comment (or a comment on this block) or be unexported (golint)
    • fo/scanner/errors.go
    • Line 16: warning: comment on exported type Error should be of the form "Error ..." (with optional leading article) (golint)
    • fo/examples/flip/main.go
    • Line 8: warning: don't use underscores in Go names; func flip____byte__string____byte should be flipByteStringByte (golint)
    • fo/ast/walk.go
    • Line 12: warning: comment on exported type Visitor should be of the form "Visitor ..." (with optional leading article) (golint)
    • fo/types/package.go
    • Line 46: warning: comment on exported method Package.Complete should be of the form "Complete ..." (golint)
    • Line 65: warning: exported method Package.Generics should have comment or be unexported (golint)
    • fo/examples/keys_values/main.go
    • Line 5: warning: don't use underscores in Go names; func keys__string__int should be keysStringInt (golint)
    • Line 15: warning: don't use underscores in Go names; func values__string__int should be valuesStringInt (golint)
    • fo/transform/transform.go
    • Line 20: warning: exported type Transformer should have comment or be unexported (golint)
    • Line 26: warning: exported method Transformer.File should have comment or be unexported (golint)
    • Line 100: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • fo/token/token.go
    • Line 23: warning: don't use underscores in Go names; const literal_beg should be literalBeg (golint)
    • Line 32: warning: don't use underscores in Go names; const literal_end should be literalEnd (golint)
    • Line 34: warning: don't use underscores in Go names; const operator_beg should be operatorBeg (golint)
    • Line 91: warning: don't use underscores in Go names; const operator_end should be operatorEnd (golint)
    • Line 93: warning: don't use underscores in Go names; const keyword_beg should be keywordBeg (golint)
    • Line 124: warning: don't use underscores in Go names; const keyword_end should be keywordEnd (golint)
    • Line 260: warning: receiver name op should be consistent with previous receiver name tok for Token (golint)
    • Line 288: warning: don't use underscores in Go names; var is_keyword should be isKeyword (golint)
    • fo/examples/pipe/main.go
    • Line 8: warning: don't use underscores in Go names; func pipe3__string__int__int__string should be pipe3StringIntIntString (golint)
    • Line 26: warning: don't use underscores in Go names; func neverError__int__string should be neverErrorIntString (golint)
    • fo/types/object.go
    • Line 82: warning: don't use underscores in Go names; struct field order_ should be order (golint)
    • Line 83: warning: don't use underscores in Go names; struct field scopePos_ should be scopePos (golint)
    • Line 154: warning: exported method Const.Val should have comment or be unexported (golint)
    • Line 157: warning: exported type BaseTypeName should have comment or be unexported (golint)
    • Line 202: warning: comment on exported type Var should be of the form "Var ..." (with optional leading article) (golint)
    • Line 237: warning: exported type BaseFunc should have comment or be unexported (golint)
    • fo/types/selection.go
    • Line 20: warning: exported const FieldVal should have comment (or a comment on this block) or be unexported (golint)
    • fo/types/type.go
    • Line 20: warning: exported type GenericType should have comment or be unexported (golint)
    • Line 26: warning: exported type ConcreteType should have comment or be unexported (golint)
    • Line 32: warning: exported type PartialGenericType should have comment or be unexported (golint)
    • Line 44: warning: exported const Invalid should have comment (or a comment on this block) or be unexported (golint)
    • Line 46: warning: comment on exported const Bool should be of the form "Bool ..." (golint)
    • Line 66: warning: comment on exported const UntypedBool should be of the form "UntypedBool ..." (golint)
    • Line 75: warning: comment on exported const Byte should be of the form "Byte ..." (golint)
    • Line 234: warning: exported type BaseSignature should have comment or be unexported (golint)
    • Line 296: warning: exported type GenericSignature should have comment or be unexported (golint)
    • Line 306: warning: exported function NewGenericSignature should have comment or be unexported (golint)
    • Line 337: warning: exported method GenericSignature.TypeParams should have comment or be unexported (golint)
    • Line 341: warning: exported method GenericSignature.Object should have comment or be unexported (golint)
    • Line 353: warning: exported method ConcreteSignature.GenericType should have comment or be unexported (golint)
    • Line 357: warning: exported method ConcreteSignature.TypeMap should have comment or be unexported (golint)
    • Line 361: warning: exported type PartialGenericSignature should have comment or be unexported (golint)
    • Line 367: warning: exported method PartialGenericSignature.TypeParams should have comment or be unexported (golint)
    • Line 371: warning: exported method PartialGenericSignature.Object should have comment or be unexported (golint)
    • Line 375: warning: exported method PartialGenericSignature.GenericType should have comment or be unexported (golint)
    • Line 379: warning: exported method PartialGenericSignature.TypeMap should have comment or be unexported (golint)
    • Line 532: warning: exported type BaseNamed should have comment or be unexported (golint)
    • Line 588: warning: exported type GenericNamed should have comment or be unexported (golint)
    • Line 593: warning: exported function NewGenericNamed should have comment or be unexported (golint)
    • Line 615: warning: exported method GenericNamed.TypeParams should have comment or be unexported (golint)
    • Line 619: warning: exported method GenericNamed.Object should have comment or be unexported (golint)
    • Line 634: warning: exported method ConcreteNamed.GenericType should have comment or be unexported (golint)
    • Line 638: warning: exported method ConcreteNamed.TypeMap should have comment or be unexported (golint)
    • Line 642: warning: exported type PartialGenericNamed should have comment or be unexported (golint)
    • Line 648: warning: exported method PartialGenericNamed.TypeParams should have comment or be unexported (golint)
    • Line 652: warning: exported method PartialGenericNamed.Object should have comment or be unexported (golint)
    • Line 656: warning: exported method PartialGenericNamed.GenericType should have comment or be unexported (golint)
    • Line 660: warning: exported method PartialGenericNamed.TypeMap should have comment or be unexported (golint)
    • Line 666: warning: exported method Basic.Underlying should have comment or be unexported (golint)
    • Line 666: warning: receiver name t should be consistent with previous receiver name b for Basic (golint)
    • Line 667: warning: exported method Array.Underlying should have comment or be unexported (golint)
    • Line 667: warning: receiver name t should be consistent with previous receiver name a for Array (golint)
    • Line 668: warning: exported method Slice.Underlying should have comment or be unexported (golint)
    • Line 668: warning: receiver name t should be consistent with previous receiver name s for Slice (golint)
    • Line 669: warning: exported method Struct.Underlying should have comment or be unexported (golint)
    • Line 669: warning: receiver name t should be consistent with previous receiver name s for Struct (golint)
    • Line 670: warning: exported method Pointer.Underlying should have comment or be unexported (golint)
    • Line 670: warning: receiver name t should be consistent with previous receiver name p for Pointer (golint)
    • Line 671: warning: exported method Tuple.Underlying should have comment or be unexported (golint)
    • Line 672: warning: exported method Signature.Underlying should have comment or be unexported (golint)
    • Line 672: warning: receiver name t should be consistent with previous receiver name s for Signature (golint)
    • Line 673: warning: exported method Interface.Underlying should have comment or be unexported (golint)
    • Line 674: warning: exported method Map.Underlying should have comment or be unexported (golint)
    • Line 674: warning: receiver name t should be consistent with previous receiver name m for Map (golint)
    • Line 675: warning: exported method Chan.Underlying should have comment or be unexported (golint)
    • Line 675: warning: receiver name t should be consistent with previous receiver name c for Chan (golint)
    • Line 676: warning: exported method Named.Underlying should have comment or be unexported (golint)
    • Line 678: warning: receiver name t should be consistent with previous receiver name b for Basic (golint)
    • Line 679: warning: receiver name t should be consistent with previous receiver name a for Array (golint)
    • Line 680: warning: receiver name t should be consistent with previous receiver name s for Slice (golint)
    • Line 681: warning: receiver name t should be consistent with previous receiver name s for Struct (golint)
    • Line 682: warning: receiver name t should be consistent with previous receiver name p for Pointer (golint)
    • Line 684: warning: receiver name t should be consistent with previous receiver name s for Signature (golint)
    • Line 685: warning: receiver name t should be consistent with previous receiver name gs for GenericSignature (golint)
    • Line 686: warning: receiver name t should be consistent with previous receiver name pgs for PartialGenericSignature (golint)
    • Line 687: warning: receiver name t should be consistent with previous receiver name cs for ConcreteSignature (golint)
    • Line 689: warning: receiver name t should be consistent with previous receiver name m for Map (golint)
    • Line 690: warning: receiver name t should be consistent with previous receiver name c for Chan (golint)
    • Line 692: warning: receiver name t should be consistent with previous receiver name gn for GenericNamed (golint)
    • Line 693: warning: receiver name t should be consistent with previous receiver name pgn for PartialGenericNamed (golint)
    • Line 694: warning: receiver name t should be consistent with previous receiver name cn for ConcreteNamed (golint)
    • fo/examples/map_slice/main.go
    • Line 8: warning: don't use underscores in Go names; func mapSlice__int__int should be mapSliceIntInt (golint)
    • Line 15: warning: don't use underscores in Go names; func mapSlice__int__uint should be mapSliceIntUint (golint)
    • Line 22: warning: don't use underscores in Go names; func mapSlice__string__string should be mapSliceStringString (golint)
    • fo/internal/gccgoimporter/importer.go
    • Line 29: warning: comment on exported type InitData should be of the form "InitData ..." (with optional leading article) (golint)
    • Line 144: warning: exported function GetImporter should have comment or be unexported (golint)
    • fo/parser/interface.go
    • Line 58: warning: exported const PackageClauseOnly should have comment (or a comment on this block) or be unexported (golint)
    • fo/examples/box/main.go
    • Line 9: warning: don't use underscores in Go names; type Box__int should be BoxInt (golint)
    • Line 9: warning: exported type Box__int should have comment or be unexported (golint)
    • Line 12: warning: don't use underscores in Go names; type Box__string should be BoxString (golint)
    • Line 12: warning: exported type Box__string should have comment or be unexported (golint)
    • Line 17: warning: exported method Box__int.Val should have comment or be unexported (golint)
    • Line 20: warning: exported method Box__string.Val should have comment or be unexported (golint)
    • Line 24: warning: exported method Box__int.Map__string should have comment or be unexported (golint)
    • Line 24: warning: don't use underscores in Go names; method Map__string should be MapString (golint)
    • fo/ast/filter.go
    • Line 48: warning: exported type Filter should have comment or be unexported (golint)
    • Line 279: warning: comment on exported const FilterFuncDuplicates should be of the form "FilterFuncDuplicates ..." (golint)
    • Line 281: warning: comment on exported const FilterUnassociatedComments should be of the form "FilterUnassociatedComments ..." (golint)
    • Line 284: warning: comment on exported const FilterImportDuplicates should be of the form "FilterImportDuplicates ..." (golint)
    • fo/ast/ast.go
    • Line 36: warning: comment on exported type Node should be of the form "Node ..." (with optional leading article) (golint)
    • Line 42: warning: comment on exported type Expr should be of the form "Expr ..." (with optional leading article) (golint)
    • Line 48: warning: comment on exported type Stmt should be of the form "Stmt ..." (with optional leading article) (golint)
    • Line 54: warning: comment on exported type Decl should be of the form "Decl ..." (with optional leading article) (golint)
    • Line 69: warning: exported method Comment.Pos should have comment or be unexported (golint)
    • Line 70: warning: exported method Comment.End should have comment or be unexported (golint)
    • Line 79: warning: exported method CommentGroup.Pos should have comment or be unexported (golint)
    • Line 80: warning: exported method CommentGroup.End should have comment or be unexported (golint)
    • Line 167: warning: exported method Field.Pos should have comment or be unexported (golint)
    • Line 174: warning: exported method Field.End should have comment or be unexported (golint)
    • Line 188: warning: exported method FieldList.Pos should have comment or be unexported (golint)
    • Line 200: warning: exported method FieldList.End should have comment or be unexported (golint)
    • Line 370: warning: comment on exported type ChanDir should be of the form "ChanDir ..." (with optional leading article) (golint)
    • Line 376: warning: exported const SEND should have comment (or a comment on this block) or be unexported (golint)
    • Line 441: warning: exported method TypeParamDecl.Pos should have comment or be unexported (golint)
    • Line 448: warning: exported method TypeParamDecl.End should have comment or be unexported (golint)
    • Line 457: warning: exported method BadExpr.Pos should have comment or be unexported (golint)
    • Line 458: warning: exported method Ident.Pos should have comment or be unexported (golint)
    • Line 459: warning: exported method Ellipsis.Pos should have comment or be unexported (golint)
    • Line 460: warning: exported method BasicLit.Pos should have comment or be unexported (golint)
    • Line 461: warning: exported method FuncLit.Pos should have comment or be unexported (golint)
    • Line 462: warning: exported method CompositeLit.Pos should have comment or be unexported (golint)
    • Line 468: warning: exported method ParenExpr.Pos should have comment or be unexported (golint)
    • Line 469: warning: exported method SelectorExpr.Pos should have comment or be unexported (golint)
    • Line 470: warning: exported method IndexExpr.Pos should have comment or be unexported (golint)
    • Line 471: warning: exported method SliceExpr.Pos should have comment or be unexported (golint)
    • Line 472: warning: exported method TypeArgExpr.Pos should have comment or be unexported (golint)
    • Line 473: warning: exported method TypeAssertExpr.Pos should have comment or be unexported (golint)
    • Line 474: warning: exported method CallExpr.Pos should have comment or be unexported (golint)
    • Line 475: warning: exported method StarExpr.Pos should have comment or be unexported (golint)
    • Line 476: warning: exported method UnaryExpr.Pos should have comment or be unexported (golint)
    • Line 477: warning: exported method BinaryExpr.Pos should have comment or be unexported (golint)
    • Line 478: warning: exported method KeyValueExpr.Pos should have comment or be unexported (golint)
    • Line 479: warning: exported method ArrayType.Pos should have comment or be unexported (golint)
    • Line 480: warning: exported method StructType.Pos should have comment or be unexported (golint)
    • Line 481: warning: exported method FuncType.Pos should have comment or be unexported (golint)
    • Line 487: warning: exported method InterfaceType.Pos should have comment or be unexported (golint)
    • Line 488: warning: exported method MapType.Pos should have comment or be unexported (golint)
    • Line 489: warning: exported method ChanType.Pos should have comment or be unexported (golint)
    • Line 491: warning: exported method BadExpr.End should have comment or be unexported (golint)
    • Line 492: warning: exported method Ident.End should have comment or be unexported (golint)
    • Line 493: warning: exported method Ellipsis.End should have comment or be unexported (golint)
    • Line 499: warning: exported method BasicLit.End should have comment or be unexported (golint)
    • Line 500: warning: exported method FuncLit.End should have comment or be unexported (golint)
    • Line 501: warning: exported method CompositeLit.End should have comment or be unexported (golint)
    • Line 502: warning: exported method ParenExpr.End should have comment or be unexported (golint)
    • Line 503: warning: exported method SelectorExpr.End should have comment or be unexported (golint)
    • Line 504: warning: exported method IndexExpr.End should have comment or be unexported (golint)
    • Line 505: warning: exported method SliceExpr.End should have comment or be unexported (golint)
    • Line 506: warning: exported method TypeArgExpr.End should have comment or be unexported (golint)
    • Line 507: warning: exported method TypeAssertExpr.End should have comment or be unexported (golint)
    • Line 508: warning: exported method CallExpr.End should have comment or be unexported (golint)
    • Line 509: warning: exported method StarExpr.End should have comment or be unexported (golint)
    • Line 510: warning: exported method UnaryExpr.End should have comment or be unexported (golint)
    • Line 511: warning: exported method BinaryExpr.End should have comment or be unexported (golint)
    • Line 512: warning: exported method KeyValueExpr.End should have comment or be unexported (golint)
    • Line 513: warning: exported method ArrayType.End should have comment or be unexported (golint)
    • Line 514: warning: exported method StructType.End should have comment or be unexported (golint)
    • Line 515: warning: exported method FuncType.End should have comment or be unexported (golint)
    • Line 521: warning: exported method InterfaceType.End should have comment or be unexported (golint)
    • Line 522: warning: exported method MapType.End should have comment or be unexported (golint)
    • Line 523: warning: exported method ChanType.End should have comment or be unexported (golint)
    • Line 577: warning: receiver name id should be consistent with previous receiver name x for Ident (golint)
    • Line 579: warning: receiver name id should be consistent with previous receiver name x for Ident (golint)
    • Line 756: warning: exported method BadStmt.Pos should have comment or be unexported (golint)
    • Line 757: warning: exported method DeclStmt.Pos should have comment or be unexported (golint)
    • Line 758: warning: exported method EmptyStmt.Pos should have comment or be unexported (golint)
    • Line 759: warning: exported method LabeledStmt.Pos should have comment or be unexported (golint)
    • Line 760: warning: exported method ExprStmt.Pos should have comment or be unexported (golint)
    • Line 761: warning: exported method SendStmt.Pos should have comment or be unexported (golint)
    • Line 762: warning: exported method IncDecStmt.Pos should have comment or be unexported (golint)
    • Line 763: warning: exported method AssignStmt.Pos should have comment or be unexported (golint)
    • Line 764: warning: exported method GoStmt.Pos should have comment or be unexported (golint)
    • Line 765: warning: exported method DeferStmt.Pos should have comment or be unexported (golint)
    • Line 766: warning: exported method ReturnStmt.Pos should have comment or be unexported (golint)
    • Line 767: warning: exported method BranchStmt.Pos should have comment or be unexported (golint)
    • Line 768: warning: exported method BlockStmt.Pos should have comment or be unexported (golint)
    • Line 769: warning: exported method IfStmt.Pos should have comment or be unexported (golint)
    • Line 770: warning: exported method CaseClause.Pos should have comment or be unexported (golint)
    • Line 771: warning: exported method SwitchStmt.Pos should have comment or be unexported (golint)
    • Line 772: warning: exported method TypeSwitchStmt.Pos should have comment or be unexported (golint)
    • Line 773: warning: exported method CommClause.Pos should have comment or be unexported (golint)
    • Line 774: warning: exported method SelectStmt.Pos should have comment or be unexported (golint)
    • Line 775: warning: exported method ForStmt.Pos should have comment or be unexported (golint)
    • Line 776: warning: exported method RangeStmt.Pos should have comment or be unexported (golint)
    • Line 778: warning: exported method BadStmt.End should have comment or be unexported (golint)
    • Line 779: warning: exported method DeclStmt.End should have comment or be unexported (golint)
    • Line 780: warning: exported method EmptyStmt.End should have comment or be unexported (golint)
    • Line 786: warning: exported method LabeledStmt.End should have comment or be unexported (golint)
    • Line 787: warning: exported method ExprStmt.End should have comment or be unexported (golint)
    • Line 788: warning: exported method SendStmt.End should have comment or be unexported (golint)
    • Line 789: warning: exported method IncDecStmt.End should have comment or be unexported (golint)
    • Line 792: warning: exported method AssignStmt.End should have comment or be unexported (golint)
    • Line 793: warning: exported method GoStmt.End should have comment or be unexported (golint)
    • Line 794: warning: exported method DeferStmt.End should have comment or be unexported (golint)
    • Line 795: warning: exported method ReturnStmt.End should have comment or be unexported (golint)
    • Line 801: warning: exported method BranchStmt.End should have comment or be unexported (golint)
    • Line 807: warning: exported method BlockStmt.End should have comment or be unexported (golint)
    • Line 808: warning: exported method IfStmt.End should have comment or be unexported (golint)
    • Line 814: warning: exported method CaseClause.End should have comment or be unexported (golint)
    • Line 820: warning: exported method SwitchStmt.End should have comment or be unexported (golint)
    • Line 821: warning: exported method TypeSwitchStmt.End should have comment or be unexported (golint)
    • Line 822: warning: exported method CommClause.End should have comment or be unexported (golint)
    • Line 828: warning: exported method SelectStmt.End should have comment or be unexported (golint)
    • Line 829: warning: exported method ForStmt.End should have comment or be unexported (golint)
    • Line 830: warning: exported method RangeStmt.End should have comment or be unexported (golint)
    • Line 903: warning: exported method ImportSpec.Pos should have comment or be unexported (golint)
    • Line 909: warning: exported method ValueSpec.Pos should have comment or be unexported (golint)
    • Line 910: warning: exported method TypeSpec.Pos should have comment or be unexported (golint)
    • Line 912: warning: exported method ImportSpec.End should have comment or be unexported (golint)
    • Line 919: warning: exported method ValueSpec.End should have comment or be unexported (golint)
    • Line 928: warning: exported method TypeSpec.End should have comment or be unexported (golint)
    • Line 981: warning: exported method BadDecl.Pos should have comment or be unexported (golint)
    • Line 982: warning: exported method GenDecl.Pos should have comment or be unexported (golint)
    • Line 983: warning: exported method FuncDecl.Pos should have comment or be unexported (golint)
    • Line 985: warning: exported method BadDecl.End should have comment or be unexported (golint)
    • Line 986: warning: exported method GenDecl.End should have comment or be unexported (golint)
    • Line 992: warning: exported method FuncDecl.End should have comment or be unexported (golint)
    • Line 1039: warning: exported method File.Pos should have comment or be unexported (golint)
    • Line 1040: warning: exported method File.End should have comment or be unexported (golint)
    • Line 1057: warning: exported method Package.Pos should have comment or be unexported (golint)
    • Line 1058: warning: exported method Package.End should have comment or be unexported (golint)
    • fo/types/scope.go
    • Line 50: warning: comment on exported method Scope.Len should be of the form "Len ..." (golint)
    • Line 65: warning: comment on exported method Scope.NumChildren should be of the form "NumChildren ..." (golint)
    • Line 121: warning: exported method Scope.End should have comment or be unexported (golint)
    • fo/examples/set/main.go
    • Line 5: warning: don't use underscores in Go names; type Set__int should be SetInt (golint)
    • Line 5: warning: exported type Set__int should have comment or be unexported (golint)
    • Line 8: warning: exported function New__int should have comment or be unexported (golint)
    • Line 8: warning: don't use underscores in Go names; func New__int should be NewInt (golint)
    • Line 12: warning: exported function NewFromSlice__int should have comment or be unexported (golint)
    • Line 12: warning: don't use underscores in Go names; func NewFromSlice__int should be NewFromSliceInt (golint)
    • Line 20: warning: exported method Set__int.Add should have comment or be unexported (golint)
    • Line 27: warning: exported method Set__int.Remove should have comment or be unexported (golint)
    • Line 31: warning: exported method Set__int.Contains should have comment or be unexported (golint)
    • Line 36: warning: exported method Set__int.Slice should have comment or be unexported (golint)
    • Line 50: warning: exported function Union__int should have comment or be unexported (golint)
    • Line 50: warning: don't use underscores in Go names; func Union__int should be UnionInt (golint)
    • Line 61: warning: exported function Intersect__int should have comment or be unexported (golint)
    • Line 61: warning: don't use underscores in Go names; func Intersect__int should be IntersectInt (golint)
    • Line 71: warning: exported function Diff__int should have comment or be unexported (golint)
    • Line 71: warning: don't use underscores in Go names; func Diff__int should be DiffInt (golint)
    • fo/constant/value.go
    • Line 32: warning: comment on exported const Unknown should be of the form "Unknown ..." (golint)
    • Line 35: warning: comment on exported const Bool should be of the form "Bool ..." (golint)
    • Line 37: warning: exported const String should have comment (or a comment on this block) or be unexported (golint)
    • Line 39: warning: comment on exported const Int should be of the form "Int ..." (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!


misspell99%

Misspell Finds commonly misspelled English words