aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-03-22 00:53:56 +0100
committerDimitri Sokolyuk <demon@dim13.org>2018-03-22 00:53:56 +0100
commitce2d2a718d45acf7167776709f0a10b7b695492e (patch)
tree84dbaa10c26d402b047eb450bf38db6f428a3b94
parente0efae97b77ef3e0c3c8435b5ac44bc1dab7b94a (diff)
megacheck
-rw-r--r--evaluator/builtins.go4
-rw-r--r--parser/parser_test.go9
-rw-r--r--parser/parser_tracing.go2
-rw-r--r--repl/repl.go2
4 files changed, 14 insertions, 3 deletions
diff --git a/evaluator/builtins.go b/evaluator/builtins.go
index 7809f51..711c3c9 100644
--- a/evaluator/builtins.go
+++ b/evaluator/builtins.go
@@ -87,7 +87,7 @@ var builtins = map[string]*object.Builtin{
arr := args[0].(*object.Array)
length := len(arr.Elements)
if length > 0 {
- newElements := make([]object.Object, length-1, length-1)
+ newElements := make([]object.Object, length-1)
copy(newElements, arr.Elements[1:length])
return &object.Array{Elements: newElements}
}
@@ -109,7 +109,7 @@ var builtins = map[string]*object.Builtin{
arr := args[0].(*object.Array)
length := len(arr.Elements)
- newElements := make([]object.Object, length+1, length+1)
+ newElements := make([]object.Object, length+1)
copy(newElements, arr.Elements)
newElements[length] = args[1]
diff --git a/parser/parser_test.go b/parser/parser_test.go
index b451ddf..7fe5268 100644
--- a/parser/parser_test.go
+++ b/parser/parser_test.go
@@ -711,6 +711,9 @@ func TestParsingEmptyArrayLiterals(t *testing.T) {
checkParserErrors(t, p)
stmt, ok := program.Statements[0].(*ast.ExpressionStatement)
+ if !ok {
+ t.Fatalf("stmt not ast.EspressionStatement. got=%T", stmt)
+ }
array, ok := stmt.Expression.(*ast.ArrayLiteral)
if !ok {
t.Fatalf("exp not ast.ArrayLiteral. got=%T", stmt.Expression)
@@ -730,6 +733,9 @@ func TestParsingArrayLiterals(t *testing.T) {
checkParserErrors(t, p)
stmt, ok := program.Statements[0].(*ast.ExpressionStatement)
+ if !ok {
+ t.Fatalf("stmt not ast.EspressionStatement. got=%T", stmt)
+ }
array, ok := stmt.Expression.(*ast.ArrayLiteral)
if !ok {
t.Fatalf("exp not ast.ArrayLiteral. got=%T", stmt.Expression)
@@ -753,6 +759,9 @@ func TestParsingIndexExpressions(t *testing.T) {
checkParserErrors(t, p)
stmt, ok := program.Statements[0].(*ast.ExpressionStatement)
+ if !ok {
+ t.Fatalf("stmt not ast.EspressionStatement. got=%T", stmt)
+ }
indexExp, ok := stmt.Expression.(*ast.IndexExpression)
if !ok {
t.Fatalf("exp not *ast.IndexExpression. got=%T", stmt.Expression)
diff --git a/parser/parser_tracing.go b/parser/parser_tracing.go
index 5fc569b..bdffbd5 100644
--- a/parser/parser_tracing.go
+++ b/parser/parser_tracing.go
@@ -1,3 +1,5 @@
+// +build ignore
+
package parser
import (
diff --git a/repl/repl.go b/repl/repl.go
index 2303927..3d75f8a 100644
--- a/repl/repl.go
+++ b/repl/repl.go
@@ -18,7 +18,7 @@ func Start(in io.Reader, out io.Writer) {
env := object.NewEnvironment()
for {
- fmt.Printf(PROMPT)
+ fmt.Print(PROMPT)
scanned := scanner.Scan()
if !scanned {
return