numeric.go

Summary

Maintainability
D
2 days
Test Coverage

Method Char.BinaryOp has 95 lines of code (exceeds 50 allowed). Consider refactoring.
Open

func (o Char) BinaryOp(tok token.Token, right Object) (Object, error) {
    switch v := right.(type) {
    case Char:
        switch tok {
        case token.Add:
Severity: Major
Found in numeric.go - About 2 hrs to fix

    Method Int.BinaryOp has 76 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (o Int) BinaryOp(tok token.Token, right Object) (Object, error) {
        switch v := right.(type) {
        case Int:
            switch tok {
            case token.Add:
    Severity: Major
    Found in numeric.go - About 2 hrs to fix

      Method Uint.BinaryOp has 76 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func (o Uint) BinaryOp(tok token.Token, right Object) (Object, error) {
          switch v := right.(type) {
          case Uint:
              switch tok {
              case token.Add:
      Severity: Major
      Found in numeric.go - About 2 hrs to fix

        Method Char.BinaryOp has 5 return statements (exceeds 4 allowed).
        Open

        func (o Char) BinaryOp(tok token.Token, right Object) (Object, error) {
            switch v := right.(type) {
            case Char:
                switch tok {
                case token.Add:
        Severity: Major
        Found in numeric.go - About 35 mins to fix

          Similar blocks of code found in 4 locations. Consider refactoring.
          Open

              case Int:
                  switch tok {
                  case token.Add:
                      return o + v, nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 3 other locations - About 3 hrs to fix
          numeric.go on lines 225..260
          numeric.go on lines 491..526
          objects.go on lines 380..415

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 280.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 4 locations. Consider refactoring.
          Open

              case Uint:
                  switch tok {
                  case token.Add:
                      return o + v, nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 3 other locations - About 3 hrs to fix
          numeric.go on lines 79..114
          numeric.go on lines 491..526
          objects.go on lines 380..415

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 280.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 4 locations. Consider refactoring.
          Open

              case Char:
                  switch tok {
                  case token.Add:
                      return o + v, nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 3 other locations - About 3 hrs to fix
          numeric.go on lines 79..114
          numeric.go on lines 225..260
          objects.go on lines 380..415

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 280.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              case Uint:
                  switch tok {
                  case token.Add:
                      return o + Char(v), nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 1 other location - About 1 hr to fix
          numeric.go on lines 527..541

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 146.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              case Char:
                  switch tok {
                  case token.Add:
                      return Char(o) + v, nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 1 other location - About 1 hr to fix
          numeric.go on lines 119..133

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 146.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              case Int:
                  switch tok {
                  case token.Add:
                      return o + Char(v), nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 1 other location - About 1 hr to fix
          numeric.go on lines 542..556

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 146.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              case Char:
                  switch tok {
                  case token.Add:
                      return Char(o) + v, nil
                  case token.Sub:
          Severity: Major
          Found in numeric.go and 1 other location - About 1 hr to fix
          numeric.go on lines 265..279

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 146.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          There are no issues that match your filters.

          Category
          Status