Showing 75 of 517 total issues
Consider simplifying this complex logical expression. Open
Open
if ch != '\r' || comment && i > len("/*") && c[i-1] == '*' &&
j+1 < len(b) && b[j+1] == '/' {
Method Compiler.compileIfStmt
has 6 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileIfStmt(node *parser.IfStmt) error {
// open new symbol table for the statement
c.symbolTable = c.symbolTable.Fork(true)
defer func() {
c.symbolTable = c.symbolTable.Parent(false)
Function builtinSortFunc
has 6 return statements (exceeds 4 allowed). Open
Open
func builtinSortFunc(arg Object) (ret Object, err error) {
switch obj := arg.(type) {
case Array:
sort.Slice(obj, func(i, j int) bool {
v, e := obj[i].BinaryOp(token.Less, obj[j])
Function canOptimizeInsts
has 6 return statements (exceeds 4 allowed). Open
Open
func canOptimizeInsts(constants []Object, insts []byte) bool {
if len(insts) == 0 {
return false
}
Method Compiler.compileCondExpr
has 6 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileCondExpr(node *parser.CondExpr) error {
if v, ok := node.Cond.(*parser.BoolLit); ok {
if v.Value {
return c.Compile(node.True)
}
Method Compiler.compileDefineAssign
has 6 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileDefineAssign(
node parser.Node,
lhs parser.Expr,
keyword token.Token,
op token.Token,
Method Compiler.compileForInStmt
has 6 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileForInStmt(stmt *parser.ForInStmt) error {
c.symbolTable = c.symbolTable.Fork(true)
defer func() {
c.symbolTable = c.symbolTable.Parent(false)
}()
Function pad
has 6 return statements (exceeds 4 allowed). Confirmed
Confirmed
func pad(c ugo.Call, left bool) (ugo.Object, error) {
size := c.Len()
if size != 2 && size != 3 {
return ugo.Undefined,
ugo.ErrWrongNumArguments.NewError("want=2..3 got=" + strconv.Itoa(size))
Method Compiler.checkAssignment
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
node parser.Node,
lhs []parser.Expr,
rhs []parser.Expr,
keyword token.Token,
op token.Token,
Method Compiler.compileAssignStmt
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
node parser.Node,
lhs []parser.Expr,
rhs []parser.Expr,
keyword token.Token,
op token.Token,
Method Compiler.compileDestructuring
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
node parser.Node,
lhs []parser.Expr,
tempArrSymbol *Symbol,
keyword token.Token,
op token.Token,
Method Compiler.compileDefineAssign
has 5 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
node parser.Node,
lhs parser.Expr,
keyword token.Token,
op token.Token,
allowRedefine bool,
Method Scanner.Scan
has 5 return statements (exceeds 4 allowed). Open
Open
func (s *Scanner) Scan() (
tok token.Token,
literal string,
pos Pos,
) {
Method SimpleOptimizer.binaryop
has 5 return statements (exceeds 4 allowed). Open
Open
func (so *SimpleOptimizer) binaryop(
op token.Token,
left, right parser.Expr,
) (parser.Expr, bool) {
Method Compiler.compileForStmt
has 5 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileForStmt(stmt *parser.ForStmt) error {
c.symbolTable = c.symbolTable.Fork(true)
defer func() {
c.symbolTable = c.symbolTable.Parent(false)
}()
Method Compiler.compileCallExpr
has 5 return statements (exceeds 4 allowed). Confirmed
Confirmed
func (c *Compiler) compileCallExpr(node *parser.CallExpr) error {
var op = OpCall
var selExpr *parser.SelectorExpr
var isSelector bool
if node.Func != nil {
Method Map.Equal
has 5 return statements (exceeds 4 allowed). Open
Open
func (o Map) Equal(right Object) bool {
v, ok := right.(Map)
if !ok {
return false
}
Method Array.IndexGet
has 5 return statements (exceeds 4 allowed). Open
Open
func (o Array) IndexGet(index Object) (Object, error) {
switch v := index.(type) {
case Int:
idx := int(v)
if idx >= 0 && idx < len(o) {
Method Compiler.compileAssignStmt
has 5 return statements (exceeds 4 allowed). Open
Open
func (c *Compiler) compileAssignStmt(
node parser.Node,
lhs []parser.Expr,
rhs []parser.Expr,
keyword token.Token,
Method VM.xOpCallObject
has 5 return statements (exceeds 4 allowed). Confirmed
Confirmed
func (vm *VM) xOpCallObject(callee Object, numArgs, flags int) error {
if !callee.CanCall() {
return ErrNotCallable.NewError(callee.TypeName())
}