diff --git a/pkg/climain/mlrcli_shebang.go b/pkg/climain/mlrcli_shebang.go index 686c9f2d28..cfcab1b397 100644 --- a/pkg/climain/mlrcli_shebang.go +++ b/pkg/climain/mlrcli_shebang.go @@ -39,7 +39,7 @@ func maybeInterpolateDashS(args []string) ([]string, error) { return args, nil } if len(args) < 3 { - return nil, fmt.Errorf("mlr: -s flag requires a filename after it.") + return nil, fmt.Errorf("mlr: -s flag requires a filename after it") } // mlr -s scriptfile input1.csv input2.csv diff --git a/pkg/dsl/cst/block_exit.go b/pkg/dsl/cst/block_exit.go index 3ba730705a..8542e88e77 100644 --- a/pkg/dsl/cst/block_exit.go +++ b/pkg/dsl/cst/block_exit.go @@ -70,7 +70,7 @@ func (root *RootNode) BuildReturnNode(astNode *dsl.ASTNode) (*ReturnNode, error) } else { lib.InternalCodingErrorIf(true) } - return nil, fmt.Errorf("internal coding error: statement should not be reached.") + return nil, fmt.Errorf("internal coding error: statement should not be reached") } func (node *ReturnNode) Execute(state *runtime.State) (*BlockExitPayload, error) { diff --git a/pkg/dsl/cst/builtin_functions.go b/pkg/dsl/cst/builtin_functions.go index 495cea6b3e..3b9fa12f3c 100644 --- a/pkg/dsl/cst/builtin_functions.go +++ b/pkg/dsl/cst/builtin_functions.go @@ -599,7 +599,7 @@ func (root *RootNode) BuildVariadicFunctionCallsiteNode( if callsiteArity < builtinFunctionInfo.minimumVariadicArity { return nil, fmt.Errorf( - "mlr: function %s takes minimum argument count %d; got %d.\n", + "mlr: function %s takes minimum argument count %d; got %d", builtinFunctionInfo.name, builtinFunctionInfo.minimumVariadicArity, callsiteArity, @@ -609,7 +609,7 @@ func (root *RootNode) BuildVariadicFunctionCallsiteNode( if builtinFunctionInfo.maximumVariadicArity != 0 { if callsiteArity > builtinFunctionInfo.maximumVariadicArity { return nil, fmt.Errorf( - "mlr: function %s takes maximum argument count %d; got %d.\n", + "mlr: function %s takes maximum argument count %d; got %d", builtinFunctionInfo.name, builtinFunctionInfo.maximumVariadicArity, callsiteArity, @@ -657,7 +657,7 @@ func (root *RootNode) BuildVariadicFunctionWithStateCallsiteNode( if callsiteArity < builtinFunctionInfo.minimumVariadicArity { return nil, fmt.Errorf( - "mlr: function %s takes minimum argument count %d; got %d.\n", + "mlr: function %s takes minimum argument count %d; got %d", builtinFunctionInfo.name, builtinFunctionInfo.minimumVariadicArity, callsiteArity, @@ -667,7 +667,7 @@ func (root *RootNode) BuildVariadicFunctionWithStateCallsiteNode( if builtinFunctionInfo.maximumVariadicArity != 0 { if callsiteArity > builtinFunctionInfo.maximumVariadicArity { return nil, fmt.Errorf( - "mlr: function %s takes maximum argument count %d; got %d.\n", + "mlr: function %s takes maximum argument count %d; got %d", builtinFunctionInfo.name, builtinFunctionInfo.maximumVariadicArity, callsiteArity, diff --git a/pkg/dsl/cst/cond.go b/pkg/dsl/cst/cond.go index aca452f432..53532d9250 100644 --- a/pkg/dsl/cst/cond.go +++ b/pkg/dsl/cst/cond.go @@ -61,7 +61,7 @@ func (node *CondBlockNode) Execute( boolValue = false } else if !isBool { return nil, fmt.Errorf( - "mlr: conditional expression did not evaluate to boolean%s.", + "mlr: conditional expression did not evaluate to boolean%s", dsl.TokenToLocationInfo(node.conditionToken), ) } diff --git a/pkg/dsl/cst/dump.go b/pkg/dsl/cst/dump.go index ba41ce16a1..c5e0d975ee 100644 --- a/pkg/dsl/cst/dump.go +++ b/pkg/dsl/cst/dump.go @@ -137,7 +137,7 @@ func (root *RootNode) buildDumpxStatementNode( } else if redirectorNode.Type == dsl.NodeTypeRedirectPipe { retval.outputHandlerManager = output.NewPipeWriteHandlerManager(root.recordWriterOptions) } else { - return nil, fmt.Errorf("mlr: unhandled redirector node type %s.", string(redirectorNode.Type)) + return nil, fmt.Errorf("mlr: unhandled redirector node type %s", string(redirectorNode.Type)) } } } @@ -211,7 +211,7 @@ func (node *DumpStatementNode) dumpToFileOrPipe( redirectorTarget := node.redirectorTargetEvaluable.Evaluate(state) if !redirectorTarget.IsString() { return fmt.Errorf( - "mlr: output redirection yielded %s, not string.", + "mlr: output redirection yielded %s, not string", redirectorTarget.GetTypeName(), ) } diff --git a/pkg/dsl/cst/emit_emitp.go b/pkg/dsl/cst/emit_emitp.go index 323c7495ad..85b9e374a0 100644 --- a/pkg/dsl/cst/emit_emitp.go +++ b/pkg/dsl/cst/emit_emitp.go @@ -171,7 +171,7 @@ func (root *RootNode) buildEmitXStatementNode( } else { return nil, fmt.Errorf( - "mlr: unlashed-emit node types must be local variables, field names, oosvars, or maps; got %s.", + "mlr: unlashed-emit node types must be local variables, field names, oosvars, or maps; got %s", childNode.Type, ) } @@ -181,7 +181,7 @@ func (root *RootNode) buildEmitXStatementNode( for _, childNode := range emittablesNode.Children { if !EMITX_NAMED_NODE_TYPES[childNode.Type] { return nil, fmt.Errorf( - "mlr: lashed-emit node types must be local variables, field names, or oosvars; got %s.", + "mlr: lashed-emit node types must be local variables, field names, or oosvars; got %s", childNode.Type, ) } @@ -271,7 +271,7 @@ func (root *RootNode) buildEmitXStatementNode( } else if redirectorNode.Type == dsl.NodeTypeRedirectPipe { retval.outputHandlerManager = output.NewPipeWriteHandlerManager(root.recordWriterOptions) } else { - return nil, fmt.Errorf("mlr: unhandled redirector node type %s.", string(redirectorNode.Type)) + return nil, fmt.Errorf("mlr: unhandled redirector node type %s", string(redirectorNode.Type)) } } } @@ -989,7 +989,7 @@ func (node *EmitXStatementNode) emitRecordToFileOrPipe( ) error { redirectorTarget := node.redirectorTargetEvaluable.Evaluate(state) if !redirectorTarget.IsString() { - return fmt.Errorf("mlr: output redirection yielded %s, not string.", redirectorTarget.GetTypeName()) + return fmt.Errorf("mlr: output redirection yielded %s, not string", redirectorTarget.GetTypeName()) } outputFileName := redirectorTarget.String() diff --git a/pkg/dsl/cst/emitf.go b/pkg/dsl/cst/emitf.go index bb211f64a8..eb6812ef79 100644 --- a/pkg/dsl/cst/emitf.go +++ b/pkg/dsl/cst/emitf.go @@ -119,7 +119,7 @@ func (root *RootNode) BuildEmitFStatementNode(astNode *dsl.ASTNode) (IExecutable } else if redirectorNode.Type == dsl.NodeTypeRedirectPipe { retval.outputHandlerManager = output.NewPipeWriteHandlerManager(root.recordWriterOptions) } else { - return nil, fmt.Errorf("mlr: unhandled redirector node type %s.", string(redirectorNode.Type)) + return nil, fmt.Errorf("mlr: unhandled redirector node type %s", string(redirectorNode.Type)) } } } @@ -163,7 +163,7 @@ func getNameFromNamedNode(astNode *dsl.ASTNode, description string) (string, err } else if astNode.Type == dsl.NodeTypeDirectFieldValue { return string(astNode.Token.Lit), nil } - return "", fmt.Errorf("mlr: can't get name of node type \"%s\" for %s.", string(astNode.Type), description) + return "", fmt.Errorf(`mlr: can't get name of node type "%s" for %s`, string(astNode.Type), description) } // ---------------------------------------------------------------- @@ -187,7 +187,7 @@ func (node *EmitFStatementNode) emitfToFileOrPipe( ) error { redirectorTarget := node.redirectorTargetEvaluable.Evaluate(state) if !redirectorTarget.IsString() { - return fmt.Errorf("mlr: output redirection yielded %s, not string.", redirectorTarget.GetTypeName()) + return fmt.Errorf("mlr: output redirection yielded %s, not string", redirectorTarget.GetTypeName()) } outputFileName := redirectorTarget.String() diff --git a/pkg/dsl/cst/for.go b/pkg/dsl/cst/for.go index 75e7cf2586..204505aba4 100644 --- a/pkg/dsl/cst/for.go +++ b/pkg/dsl/cst/for.go @@ -805,7 +805,7 @@ func (root *RootNode) BuildTripleForLoopNode(astNode *dsl.ASTNode) (*TripleForLo for i := 0; i < n-1; i++ { if continuationExpressionASTNode.Children[i].Type != dsl.NodeTypeAssignment { return nil, fmt.Errorf( - "mlr: the non-final triple-for continuation statements must be assignments.", + "mlr: the non-final triple-for continuation statements must be assignments", ) } precontinuationAssignment, err := root.BuildAssignmentNode( @@ -822,11 +822,11 @@ func (root *RootNode) BuildTripleForLoopNode(astNode *dsl.ASTNode) (*TripleForLo if bareBooleanASTNode.Type != dsl.NodeTypeBareBoolean { if n == 1 { return nil, fmt.Errorf( - "mlr: the triple-for continuation statement must be a bare boolean.", + "mlr: the triple-for continuation statement must be a bare boolean", ) } else { return nil, fmt.Errorf( - "mlr: the final triple-for continuation statement must be a bare boolean.", + "mlr: the final triple-for continuation statement must be a bare boolean", ) } } @@ -898,7 +898,7 @@ func (node *TripleForLoopNode) Execute(state *runtime.State) (*BlockExitPayload, boolValue, isBool := continuationValue.GetBoolValue() if !isBool { return nil, fmt.Errorf( - "mlr: for-loop continuation did not evaluate to boolean%s.", + "mlr: for-loop continuation did not evaluate to boolean%s", dsl.TokenToLocationInfo(node.continuationExpressionToken), ) } diff --git a/pkg/dsl/cst/if.go b/pkg/dsl/cst/if.go index a25f60eb82..3396ddd193 100644 --- a/pkg/dsl/cst/if.go +++ b/pkg/dsl/cst/if.go @@ -130,7 +130,7 @@ func (node *IfChainNode) Execute(state *runtime.State) (*BlockExitPayload, error boolValue, isBool := condition.GetBoolValue() if !isBool { return nil, fmt.Errorf( - "mlr: conditional expression did not evaluate to boolean%s.", + "mlr: conditional expression did not evaluate to boolean%s", dsl.TokenToLocationInfo(ifItem.conditionToken), ) } diff --git a/pkg/dsl/cst/lvalues.go b/pkg/dsl/cst/lvalues.go index cb18d78326..b680644cb5 100644 --- a/pkg/dsl/cst/lvalues.go +++ b/pkg/dsl/cst/lvalues.go @@ -45,11 +45,11 @@ func (root *RootNode) BuildAssignableNode( case dsl.NodeTypeArrayOrMapPositionalNameAccess: return nil, fmt.Errorf( - "mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'.", + "mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'", ) case dsl.NodeTypeArrayOrMapPositionalValueAccess: return nil, fmt.Errorf( - "mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$'.", + "mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$'", ) case dsl.NodeTypeArrayOrMapIndexAccess: @@ -106,7 +106,7 @@ func (node *DirectFieldValueLvalueNode) AssignIndexed( // print inrec attributes. Also, a UDF/UDS invoked from begin/end could try // to access the inrec, and that would get past the validator. if state.Inrec == nil { - return fmt.Errorf("there is no current record to assign to.") + return fmt.Errorf("there is no current record to assign to") } // AssignmentNode checks for absent, so we just assign whatever we get @@ -205,7 +205,7 @@ func (node *IndirectFieldValueLvalueNode) AssignIndexed( // print inrec attributes. Also, a UDF/UDS invoked from begin/end could try // to access the inrec, and that would get past the validator. if state.Inrec == nil { - return fmt.Errorf("there is no current record to assign to.") + return fmt.Errorf("there is no current record to assign to") } lhsFieldName := node.lhsFieldNameExpression.Evaluate(state) @@ -298,7 +298,7 @@ func (node *PositionalFieldNameLvalueNode) Assign( // print inrec attributes. Also, a UDF/UDS invoked from begin/end could try // to access the inrec, and that would get past the validator. if state.Inrec == nil { - return fmt.Errorf("there is no current record to assign to.") + return fmt.Errorf("there is no current record to assign to") } lhsFieldIndex := node.lhsFieldIndexExpression.Evaluate(state) @@ -310,7 +310,7 @@ func (node *PositionalFieldNameLvalueNode) Assign( return nil } else { return fmt.Errorf( - "mlr: positional index for $[[...]] assignment must be integer; got %s.", + "mlr: positional index for $[[...]] assignment must be integer; got %s", lhsFieldIndex.GetTypeName(), ) } @@ -324,7 +324,7 @@ func (node *PositionalFieldNameLvalueNode) AssignIndexed( // TODO: reconsider this if /when we decide to allow string-slice // assignments. return fmt.Errorf( - "mlr: $[[...]] = ... expressions are not indexable.", + "mlr: $[[...]] = ... expressions are not indexable", ) } @@ -416,7 +416,7 @@ func (node *PositionalFieldValueLvalueNode) AssignIndexed( // print inrec attributes. Also, a UDF/UDS invoked from begin/end could try // to access the inrec, and that would get past the validator. if state.Inrec == nil { - return fmt.Errorf("there is no current record to assign to.") + return fmt.Errorf("there is no current record to assign to") } lhsFieldIndex := node.lhsFieldIndexExpression.Evaluate(state) @@ -434,7 +434,7 @@ func (node *PositionalFieldValueLvalueNode) AssignIndexed( return nil } else { return fmt.Errorf( - "mlr: positional index for $[[[...]]] assignment must be integer; got %s.", + "mlr: positional index for $[[[...]]] assignment must be integer; got %s", lhsFieldIndex.GetTypeName(), ) } @@ -517,7 +517,7 @@ func (node *FullSrecLvalueNode) AssignIndexed( // print inrec attributes. Also, a UDF/UDS invoked from begin/end could try // to access the inrec, and that would get past the validator. if state.Inrec == nil { - return fmt.Errorf("there is no current record to assign to.") + return fmt.Errorf("there is no current record to assign to") } // AssignmentNode checks for absentness of the rvalue, so we just assign @@ -787,7 +787,7 @@ func (root *RootNode) BuildLocalVariableLvalueNode(astNode *dsl.ASTNode) (IAssig if astNode.Children == nil { // untyped, like 'x = 3' if root.strictMode { return nil, fmt.Errorf( - "mlr: need typedecl such as \"var\", \"str\", \"num\", etc. for variable \"%s\" in strict mode", + `mlr: need typedecl such as "var", "str", "num", etc. for variable "%s" in strict mode`, variableName, ) } @@ -1086,7 +1086,7 @@ func (node *EnvironmentVariableLvalueNode) Assign( if !name.IsString() { return fmt.Errorf( - "assignments to ENV[...] must have string names; got %s \"%s\"\n", + `assignments to ENV[...] must have string names; got %s "%s"`, name.GetTypeName(), name.String(), ) @@ -1109,7 +1109,7 @@ func (node *EnvironmentVariableLvalueNode) AssignIndexed( indices []*mlrval.Mlrval, state *runtime.State, ) error { - return fmt.Errorf("mlr: ENV[...] cannot be indexed.") + return fmt.Errorf("mlr: ENV[...] cannot be indexed") } func (node *EnvironmentVariableLvalueNode) Unassign( @@ -1133,5 +1133,5 @@ func (node *EnvironmentVariableLvalueNode) UnassignIndexed( state *runtime.State, ) { // TODO: needs error return - //return errors.New("mlr: ENV[...] cannot be indexed.") + //return errors.New("mlr: ENV[...] cannot be indexed") } diff --git a/pkg/dsl/cst/print.go b/pkg/dsl/cst/print.go index f00c712a82..39c84f58d3 100644 --- a/pkg/dsl/cst/print.go +++ b/pkg/dsl/cst/print.go @@ -280,7 +280,7 @@ func (root *RootNode) buildPrintxStatementNode( } else if redirectorNode.Type == dsl.NodeTypeRedirectPipe { retval.outputHandlerManager = output.NewPipeWriteHandlerManager(root.recordWriterOptions) } else { - return nil, fmt.Errorf("mlr: unhandled redirector node type %s.", string(redirectorNode.Type)) + return nil, fmt.Errorf("mlr: unhandled redirector node type %s", string(redirectorNode.Type)) } } } @@ -356,7 +356,7 @@ func (node *PrintStatementNode) printToFileOrPipe( ) error { redirectorTarget := node.redirectorTargetEvaluable.Evaluate(state) if !redirectorTarget.IsString() { - return fmt.Errorf("mlr: output redirection yielded %s, not string.", redirectorTarget.GetTypeName()) + return fmt.Errorf("mlr: output redirection yielded %s, not string", redirectorTarget.GetTypeName()) } outputFileName := redirectorTarget.String() diff --git a/pkg/dsl/cst/statements.go b/pkg/dsl/cst/statements.go index 251618f19c..eec0906061 100644 --- a/pkg/dsl/cst/statements.go +++ b/pkg/dsl/cst/statements.go @@ -67,9 +67,9 @@ func (root *RootNode) BuildStatementNode( return root.BuildEmitPStatementNode(astNode) case dsl.NodeTypeBeginBlock: - return nil, fmt.Errorf("mlr: begin blocks may only be declared at top level.") + return nil, fmt.Errorf("mlr: begin blocks may only be declared at top level") case dsl.NodeTypeEndBlock: - return nil, fmt.Errorf("mlr: end blocks may only be declared at top level.") + return nil, fmt.Errorf("mlr: end blocks may only be declared at top level") case dsl.NodeTypeIfChain: return root.BuildIfChainNode(astNode) @@ -89,9 +89,9 @@ func (root *RootNode) BuildStatementNode( return root.BuildTripleForLoopNode(astNode) case dsl.NodeTypeNamedFunctionDefinition: - return nil, fmt.Errorf("mlr: functions may only be declared at top level.") + return nil, fmt.Errorf("mlr: functions may only be declared at top level") case dsl.NodeTypeSubroutineDefinition: - return nil, fmt.Errorf("mlr: subroutines may only be declared at top level.") + return nil, fmt.Errorf("mlr: subroutines may only be declared at top level") case dsl.NodeTypeSubroutineCallsite: return root.BuildSubroutineCallsiteNode(astNode) diff --git a/pkg/dsl/cst/tee.go b/pkg/dsl/cst/tee.go index 7a9542eea5..c0ef376f1c 100644 --- a/pkg/dsl/cst/tee.go +++ b/pkg/dsl/cst/tee.go @@ -121,7 +121,7 @@ func (root *RootNode) BuildTeeStatementNode(astNode *dsl.ASTNode) (IExecutable, } else if redirectorNode.Type == dsl.NodeTypeRedirectPipe { retval.outputHandlerManager = output.NewPipeWriteHandlerManager(root.recordWriterOptions) } else { - return nil, fmt.Errorf("mlr: unhandled redirector node type %s.", string(redirectorNode.Type)) + return nil, fmt.Errorf("mlr: unhandled redirector node type %s", string(redirectorNode.Type)) } } @@ -138,7 +138,7 @@ func (root *RootNode) BuildTeeStatementNode(astNode *dsl.ASTNode) (IExecutable, func (node *TeeStatementNode) Execute(state *runtime.State) (*BlockExitPayload, error) { expression := node.expressionEvaluable.Evaluate(state) if !expression.IsMap() { - return nil, fmt.Errorf("mlr: tee-evaluaiton yielded %s, not map.", expression.GetTypeName()) + return nil, fmt.Errorf("mlr: tee-evaluaiton yielded %s, not map", expression.GetTypeName()) } err := node.teeToRedirectFunc(expression.GetMap(), state) return nil, err @@ -151,7 +151,7 @@ func (node *TeeStatementNode) teeToFileOrPipe( ) error { redirectorTarget := node.redirectorTargetEvaluable.Evaluate(state) if !redirectorTarget.IsString() { - return fmt.Errorf("mlr: output redirection yielded %s, not string.", redirectorTarget.GetTypeName()) + return fmt.Errorf("mlr: output redirection yielded %s, not string", redirectorTarget.GetTypeName()) } outputFileName := redirectorTarget.String() diff --git a/pkg/dsl/cst/udf.go b/pkg/dsl/cst/udf.go index 4add00e88f..e1544d7b2e 100644 --- a/pkg/dsl/cst/udf.go +++ b/pkg/dsl/cst/udf.go @@ -403,7 +403,7 @@ func (root *RootNode) BuildAndInstallUDF(astNode *dsl.ASTNode) error { if BuiltinFunctionManagerInstance.LookUp(functionName) != nil { return fmt.Errorf( - "mlr: function named \"%s\" must not override a built-in function of the same name.", + `mlr: function named "%s" must not override a built-in function of the same name`, functionName, ) } @@ -411,7 +411,7 @@ func (root *RootNode) BuildAndInstallUDF(astNode *dsl.ASTNode) error { if !root.allowUDFUDSRedefinitions { if root.udfManager.ExistsByName(functionName) { return fmt.Errorf( - "mlr: function named \"%s\" has already been defined.", + `mlr: function named "%s" has already been defined`, functionName, ) } diff --git a/pkg/dsl/cst/uds.go b/pkg/dsl/cst/uds.go index c9f888ca2d..f42d5fc20e 100644 --- a/pkg/dsl/cst/uds.go +++ b/pkg/dsl/cst/uds.go @@ -244,7 +244,7 @@ func (root *RootNode) BuildAndInstallUDS(astNode *dsl.ASTNode) error { if !root.allowUDFUDSRedefinitions { if root.udsManager.ExistsByName(subroutineName) { return fmt.Errorf( - "mlr: subroutine named \"%s\" has already been defined.", + `mlr: subroutine named "%s" has already been defined`, subroutineName, ) } diff --git a/pkg/dsl/cst/validate.go b/pkg/dsl/cst/validate.go index 989b3d0e7a..39db06fdc3 100644 --- a/pkg/dsl/cst/validate.go +++ b/pkg/dsl/cst/validate.go @@ -31,7 +31,7 @@ func ValidateAST( // But filter '' is an error. if ast.RootNode.Children == nil || len(ast.RootNode.Children) == 0 { if dslInstanceType == DSLInstanceTypeFilter { - return fmt.Errorf("mlr: filter statement must not be empty.") + return fmt.Errorf("mlr: filter statement must not be empty") } } @@ -80,7 +80,7 @@ func validateASTAux( if astNode.Type == dsl.NodeTypeFilterStatement { if dslInstanceType == DSLInstanceTypeFilter { return fmt.Errorf( - "mlr: filter expressions must not also contain the \"filter\" keyword.", + `mlr: filter expressions must not also contain the "filter" keyword`, ) } } @@ -89,21 +89,21 @@ func validateASTAux( if astNode.Type == dsl.NodeTypeBeginBlock { if !atTopLevel { return fmt.Errorf( - "mlr: begin blocks can only be at top level.", + "mlr: begin blocks can only be at top level", ) } nextLevelInBeginOrEnd = true } else if astNode.Type == dsl.NodeTypeEndBlock { if !atTopLevel { return fmt.Errorf( - "mlr: end blocks can only be at top level.", + "mlr: end blocks can only be at top level", ) } nextLevelInBeginOrEnd = true } else if astNode.Type == dsl.NodeTypeNamedFunctionDefinition { if !atTopLevel { return fmt.Errorf( - "mlr: func blocks can only be at top level.", + "mlr: func blocks can only be at top level", ) } nextLevelInUDF = true @@ -112,7 +112,7 @@ func validateASTAux( } else if astNode.Type == dsl.NodeTypeSubroutineDefinition { if !atTopLevel { return fmt.Errorf( - "mlr: subr blocks can only be at top level.", + "mlr: subr blocks can only be at top level", ) } nextLevelInUDS = true @@ -134,7 +134,7 @@ func validateASTAux( astNode.Type == dsl.NodeTypeIndirectFieldValue || astNode.Type == dsl.NodeTypeFullSrec { return fmt.Errorf( - "mlr: begin/end blocks cannot refer to records via $x, $*, etc.", + "mlr: begin/end blocks cannot refer to records via $x, $*, etc", ) } } @@ -143,7 +143,7 @@ func validateASTAux( if !inLoop { if astNode.Type == dsl.NodeTypeBreak { return fmt.Errorf( - "mlr: break statements are only valid within for/do/while loops.", + "mlr: break statements are only valid within for/do/while loops", ) } } @@ -151,7 +151,7 @@ func validateASTAux( if !inLoop { if astNode.Type == dsl.NodeTypeContinue { return fmt.Errorf( - "mlr: break statements are only valid within for/do/while loops.", + "mlr: break statements are only valid within for/do/while loops", ) } } @@ -169,7 +169,7 @@ func validateASTAux( if !inUDF && !inUDS { if astNode.Type == dsl.NodeTypeReturn { return fmt.Errorf( - "mlr: return statements are only valid within func/subr blocks.", + "mlr: return statements are only valid within func/subr blocks", ) } } @@ -179,14 +179,14 @@ func validateASTAux( if inUDF { if len(astNode.Children) != 1 { return fmt.Errorf( - "mlr: return statements in func blocks must return a value.", + "mlr: return statements in func blocks must return a value", ) } } if inUDS { if len(astNode.Children) != 0 { return fmt.Errorf( - "mlr: return statements in subr blocks must not return a value.", + "mlr: return statements in subr blocks must not return a value", ) } } @@ -197,7 +197,7 @@ func validateASTAux( ok := VALID_LHS_NODE_TYPES[astNode.Type] if !ok { return fmt.Errorf( - "mlr: %s is not valid on the left-hand side of an assignment.", + "mlr: %s is not valid on the left-hand side of an assignment", astNode.Type, ) } @@ -208,7 +208,7 @@ func validateASTAux( ok := VALID_LHS_NODE_TYPES[astNode.Type] if !ok { return fmt.Errorf( - "mlr: %s is not valid for unset statement.", + "mlr: %s is not valid for unset statement", astNode.Type, ) } @@ -259,7 +259,7 @@ func validateForLoopTwoVariableUniqueNames(astNode *dsl.ASTNode) error { keyVarName := string(keyVarNode.Token.Lit) valVarName := string(valVarNode.Token.Lit) if keyVarName == valVarName { - return fmt.Errorf("mlr: redefinition of variable %s in the same scope.", keyVarName) + return fmt.Errorf("mlr: redefinition of variable %s in the same scope", keyVarName) } else { return nil } @@ -289,14 +289,14 @@ func validateForLoopMultivariableUniqueNames(astNode *dsl.ASTNode) error { name := string(keyVarNode.Token.Lit) _, present := seen[name] if present { - return fmt.Errorf("mlr: redefinition of variable %s in the same scope.", name) + return fmt.Errorf("mlr: redefinition of variable %s in the same scope", name) } seen[name] = true } valVarName := string(valVarNode.Token.Lit) if seen[valVarName] { - return fmt.Errorf("mlr: redefinition of variable %s in the same scope.", valVarName) + return fmt.Errorf("mlr: redefinition of variable %s in the same scope", valVarName) } return nil diff --git a/pkg/dsl/cst/while.go b/pkg/dsl/cst/while.go index 46ea57e321..2e2fd5f125 100644 --- a/pkg/dsl/cst/while.go +++ b/pkg/dsl/cst/while.go @@ -60,7 +60,7 @@ func (node *WhileLoopNode) Execute(state *runtime.State) (*BlockExitPayload, err boolValue, isBool := condition.GetBoolValue() if !isBool { return nil, fmt.Errorf( - "mlr: conditional expression did not evaluate to boolean%s.", + "mlr: conditional expression did not evaluate to boolean%s", dsl.TokenToLocationInfo(node.conditionToken), ) } @@ -157,7 +157,7 @@ func (node *DoWhileLoopNode) Execute(state *runtime.State) (*BlockExitPayload, e boolValue, isBool := condition.GetBoolValue() if !isBool { return nil, fmt.Errorf( - "mlr: conditional expression did not evaluate to boolean%s.", + "mlr: conditional expression did not evaluate to boolean%s", dsl.TokenToLocationInfo(node.conditionToken), ) } diff --git a/pkg/input/record_reader_csv.go b/pkg/input/record_reader_csv.go index 976f6ed1dd..20c1fd15d1 100644 --- a/pkg/input/record_reader_csv.go +++ b/pkg/input/record_reader_csv.go @@ -244,8 +244,7 @@ func (reader *RecordReaderCSV) getRecordBatch( } else { if !reader.readerOptions.AllowRaggedCSVInput { err := fmt.Errorf( - "mlr: CSV header/data length mismatch %d != %d "+ - "at filename %s row %d.\n", + "mlr: CSV header/data length mismatch %d != %d at filename %s row %d", nh, nd, reader.filename, reader.rowNumber, ) errorChannel <- err diff --git a/pkg/input/record_reader_csvlite.go b/pkg/input/record_reader_csvlite.go index dd590da828..d658a4f993 100644 --- a/pkg/input/record_reader_csvlite.go +++ b/pkg/input/record_reader_csvlite.go @@ -217,8 +217,7 @@ func getRecordBatchExplicitCSVHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: CSV header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: CSV header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err @@ -342,8 +341,7 @@ func getRecordBatchImplicitCSVHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: CSV header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: CSV header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err diff --git a/pkg/input/record_reader_json.go b/pkg/input/record_reader_json.go index 094dca9963..096e506fb5 100644 --- a/pkg/input/record_reader_json.go +++ b/pkg/input/record_reader_json.go @@ -153,7 +153,7 @@ func (reader *RecordReaderJSON) processHandle( if !mlrval.IsMap() { // TODO: more context errorChannel <- fmt.Errorf( - "valid but unmillerable JSON. Expected map (JSON object); got %s.", + "valid but unmillerable JSON. Expected map (JSON object); got %s", mlrval.GetTypeName(), ) return @@ -174,7 +174,7 @@ func (reader *RecordReaderJSON) processHandle( } else { errorChannel <- fmt.Errorf( - "valid but unmillerable JSON. Expected map (JSON object); got %s.", + "valid but unmillerable JSON. Expected map (JSON object); got %s", mlrval.GetTypeName(), ) return diff --git a/pkg/input/record_reader_pprint.go b/pkg/input/record_reader_pprint.go index d3ed2c228e..b83710f7bc 100644 --- a/pkg/input/record_reader_pprint.go +++ b/pkg/input/record_reader_pprint.go @@ -240,8 +240,7 @@ func getRecordBatchExplicitPprintHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: PPRINT-barred header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: PPRINT-barred header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err @@ -378,8 +377,7 @@ func getRecordBatchImplicitPprintHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: CSV header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: CSV header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err diff --git a/pkg/input/record_reader_tsv.go b/pkg/input/record_reader_tsv.go index 4db48f669f..f70042bbe8 100644 --- a/pkg/input/record_reader_tsv.go +++ b/pkg/input/record_reader_tsv.go @@ -186,8 +186,7 @@ func getRecordBatchExplicitTSVHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: TSV header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: TSV header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err @@ -307,8 +306,7 @@ func getRecordBatchImplicitTSVHeader( } else { if !reader.readerOptions.AllowRaggedCSVInput && len(reader.headerStrings) != len(fields) { err := fmt.Errorf( - "mlr: TSV header/data length mismatch %d != %d "+ - "at filename %s line %d.\n", + "mlr: TSV header/data length mismatch %d != %d at filename %s line %d", len(reader.headerStrings), len(fields), filename, reader.inputLineNumber, ) errorChannel <- err diff --git a/pkg/lib/file_readers.go b/pkg/lib/file_readers.go index d4d3f60be5..d370d616f2 100644 --- a/pkg/lib/file_readers.go +++ b/pkg/lib/file_readers.go @@ -269,10 +269,10 @@ func IsUpdateableInPlace( if strings.HasPrefix(filename, "http://") || strings.HasPrefix(filename, "https://") || strings.HasPrefix(filename, "file://") { - return fmt.Errorf("http://, https://, and file:// URLs are not updateable in place.") + return fmt.Errorf("http://, https://, and file:// URLs are not updateable in place") } if prepipe != "" { - return fmt.Errorf("input with --prepipe or --prepipex is not updateable in place.") + return fmt.Errorf("input with --prepipe or --prepipex is not updateable in place") } return nil } @@ -314,7 +314,7 @@ func WrapOutputHandle( ) (io.WriteCloser, bool, error) { switch inputFileEncoding { case FileInputEncodingBzip2: - return fileWriteHandle, false, fmt.Errorf("bzip2 is not currently supported for in-place mode.") + return fileWriteHandle, false, fmt.Errorf("bzip2 is not currently supported for in-place mode") case FileInputEncodingGzip: return gzip.NewWriter(fileWriteHandle), true, nil case FileInputEncodingZlib: diff --git a/pkg/mlrval/mlrmap_accessors.go b/pkg/mlrval/mlrmap_accessors.go index caea8e2ab0..9552efe6cc 100644 --- a/pkg/mlrval/mlrmap_accessors.go +++ b/pkg/mlrval/mlrmap_accessors.go @@ -360,7 +360,7 @@ func (mlrmap *Mlrmap) getWithMlrvalArrayIndex(index *Mlrval) (*Mlrval, error) { } if i < n-1 { if !next.IsMap() { - return nil, fmt.Errorf("mlr: cannot multi-index non-map.") + return nil, fmt.Errorf("mlr: cannot multi-index non-map") } current = next.intf.(*Mlrmap) } else { @@ -378,7 +378,7 @@ func (mlrmap *Mlrmap) getWithMlrvalSingleIndex(index *Mlrval) (*Mlrval, error) { return mlrmap.Get(index.String()), nil } else { return nil, fmt.Errorf( - "Record/map indices must be string, int, or array thereof; got %s", index.GetTypeName(), + "record/map indices must be string, int, or array thereof; got %s", index.GetTypeName(), ) } } diff --git a/pkg/mlrval/mlrval_collections.go b/pkg/mlrval/mlrval_collections.go index 46e2d3718c..2813fe0992 100644 --- a/pkg/mlrval/mlrval_collections.go +++ b/pkg/mlrval/mlrval_collections.go @@ -396,9 +396,9 @@ func putIndexedOnArray( if inBounds { (*baseArray)[zindex] = rvalue.Copy() } else if mindex.intf.(int64) == 0 { - return errors.New("mlr: zero indices are not supported. Indices are 1-up.") + return errors.New("mlr: zero indices are not supported. Indices are 1-up") } else if mindex.intf.(int64) < 0 { - return errors.New("mlr: Cannot use negative indices to auto-lengthen arrays.") + return errors.New("mlr: Cannot use negative indices to auto-lengthen arrays") } else { // Array is [a,b,c] with mindices 1,2,3. Length is 3. Zindices are 0,1,2. // Given mindex is 4. @@ -431,9 +431,9 @@ func putIndexedOnArray( return (*baseArray)[zindex].PutIndexed(indices[1:], rvalue) } else if mindex.intf.(int64) == 0 { - return errors.New("mlr: zero indices are not supported. Indices are 1-up.") + return errors.New("mlr: zero indices are not supported. Indices are 1-up") } else if mindex.intf.(int64) < 0 { - return errors.New("mlr: Cannot use negative indices to auto-lengthen arrays.") + return errors.New("mlr: Cannot use negative indices to auto-lengthen arrays") } else { // Already allocated but needs to be longer LengthenMlrvalArray(baseArray, int(mindex.intf.(int64))) @@ -458,7 +458,7 @@ func (mv *Mlrval) RemoveIndexed(indices []*Mlrval) error { } else { return errors.New( - "mlr: cannot unset index variable which is neither map nor array.", + "mlr: cannot unset index variable which is neither map nor array", ) } } @@ -527,20 +527,20 @@ func removeIndexedOnArray( rightSlice := (*baseArray)[zindex+1 : len((*baseArray))] *baseArray = append(leftSlice, rightSlice...) } else if mindex.intf.(int64) == 0 { - return errors.New("mlr: zero indices are not supported. Indices are 1-up.") + return errors.New("mlr: zero indices are not supported. Indices are 1-up") } else { // TODO: improve wording - return errors.New("mlr: array index out of bounds for unset.") + return errors.New("mlr: array index out of bounds for unset") } } else { // More indices remain; recurse if inBounds { return (*baseArray)[zindex].RemoveIndexed(indices[1:]) } else if mindex.intf.(int64) == 0 { - return errors.New("mlr: zero indices are not supported. Indices are 1-up.") + return errors.New("mlr: zero indices are not supported. Indices are 1-up") } else { // TODO: improve wording - return errors.New("mlr: array index out of bounds for unset.") + return errors.New("mlr: array index out of bounds for unset") } } diff --git a/pkg/mlrval/mlrval_json.go b/pkg/mlrval/mlrval_json.go index fd7d6711ea..a5dc213a7b 100644 --- a/pkg/mlrval/mlrval_json.go +++ b/pkg/mlrval/mlrval_json.go @@ -105,7 +105,7 @@ func (mv *Mlrval) UnmarshalJSON(inputBytes []byte) error { decoder := json.NewDecoder(bytes.NewReader(inputBytes)) pmv, eof, err := MlrvalDecodeFromJSON(decoder) if eof { - return fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + return fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } if err != nil { return err @@ -119,7 +119,7 @@ func TryUnmarshalJSON(inputBytes []byte) (pmv *Mlrval, err error) { decoder := json.NewDecoder(bytes.NewReader(inputBytes)) pmv, eof, err := MlrvalDecodeFromJSON(decoder) if eof { - err = fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + err = fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } return pmv, err } @@ -196,7 +196,7 @@ func MlrvalDecodeFromJSON(decoder *json.Decoder) ( element, eof, err := MlrvalDecodeFromJSON(decoder) if eof { // xxx constify - return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } if err != nil { return nil, false, err @@ -211,7 +211,7 @@ func MlrvalDecodeFromJSON(decoder *json.Decoder) ( key, eof, err := MlrvalDecodeFromJSON(decoder) if eof { // xxx constify - return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } if err != nil { return nil, false, err @@ -219,14 +219,14 @@ func MlrvalDecodeFromJSON(decoder *json.Decoder) ( if !key.IsString() { return nil, false, fmt.Errorf( // TODO: print out what was gotten - "mlr JSON reader: object keys must be string-valued.", + "mlr JSON reader: object keys must be string-valued", ) } value, eof, err := MlrvalDecodeFromJSON(decoder) if eof { // xxx constify - return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } if err != nil { return nil, false, err @@ -245,7 +245,7 @@ func MlrvalDecodeFromJSON(decoder *json.Decoder) ( endToken, err := decoder.Token() if err == io.EOF { - return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF.") + return nil, false, fmt.Errorf("mlr: JSON parser: unexpected premature EOF") } if err != nil { return nil, false, err diff --git a/pkg/output/file_output_handlers.go b/pkg/output/file_output_handlers.go index a5b3824ee5..d47617cc05 100644 --- a/pkg/output/file_output_handlers.go +++ b/pkg/output/file_output_handlers.go @@ -300,7 +300,7 @@ func NewPipeWriteOutputHandler( ) (*FileOutputHandler, error) { writePipe, err := lib.OpenOutboundHalfPipe(commandString) if err != nil { - return nil, fmt.Errorf("could not launch command \"%s\" for pipe-to.", commandString) + return nil, fmt.Errorf(`could not launch command "%s" for pipe-to`, commandString) } return newOutputHandlerCommon( diff --git a/pkg/parsing/token/token.go b/pkg/parsing/token/token.go index 50282b2c31..69fe0404cf 100644 --- a/pkg/parsing/token/token.go +++ b/pkg/parsing/token/token.go @@ -123,7 +123,7 @@ func (t *Token) Int64Value() (int64, error) { func (t *Token) UTF8Rune() (rune, error) { r, _ := utf8.DecodeRune(t.Lit) if r == utf8.RuneError { - err := fmt.Errorf("Invalid rune") + err := fmt.Errorf("invalid rune") return r, err } return r, nil diff --git a/pkg/runtime/stack.go b/pkg/runtime/stack.go index 263e5cee1e..6424ebf196 100644 --- a/pkg/runtime/stack.go +++ b/pkg/runtime/stack.go @@ -407,7 +407,7 @@ func (frame *StackFrame) defineTyped( return nil } else { return fmt.Errorf( - "%s: variable %s has already been defined in the same scope.", + "%s: variable %s has already been defined in the same scope", "mlr", stackVariable.name, ) } @@ -429,7 +429,7 @@ func (frame *StackFrame) setIndexed( return frame.set(stackVariable, newval) } else { return fmt.Errorf( - "%s: map indices must be int or string; got %s.\n", + "%s: map indices must be int or string; got %s", "mlr", leadingIndex.GetTypeName(), ) } diff --git a/pkg/terminals/regtest/regtester.go b/pkg/terminals/regtest/regtester.go index 1df98f874d..029ace13bb 100644 --- a/pkg/terminals/regtest/regtester.go +++ b/pkg/terminals/regtest/regtester.go @@ -855,7 +855,7 @@ func (regtester *RegTester) loadEnvFile( fields := strings.SplitN(line, "=", 2) if len(fields) != 2 { return nil, fmt.Errorf( - "mlr: could not parse line \"%s\" from file \"%s\".\n", + `mlr: could not parse line "%s" from file "%s"`, line, filename, ) } @@ -892,7 +892,7 @@ func (regtester *RegTester) loadStringPairFile( fields := strings.SplitN(line, " ", 2) // TODO: split on multi-space if len(fields) != 2 { return nil, fmt.Errorf( - "mlr: could not parse line \"%s\" from file \"%s\".\n", + `mlr: could not parse line "%s" from file "%s"`, line, filename, ) } diff --git a/pkg/terminals/repl/session.go b/pkg/terminals/repl/session.go index 33fcac1497..27bd3896a6 100644 --- a/pkg/terminals/repl/session.go +++ b/pkg/terminals/repl/session.go @@ -268,7 +268,7 @@ func (repl *Repl) closeBufferedOutputStream() error { if repl.recordOutputStream != os.Stdout { err := repl.recordOutputStream.Close() if err != nil { - return fmt.Errorf("mlr repl: error on redirect close of %s: %v\n", + return fmt.Errorf("mlr repl: error on redirect close of %s: %v", repl.recordOutputFileName, err, ) } diff --git a/pkg/transformers/case.go b/pkg/transformers/case.go index e630c8e15a..1020876e4e 100644 --- a/pkg/transformers/case.go +++ b/pkg/transformers/case.go @@ -157,7 +157,7 @@ func NewTransformerCase( tr.caserFunc = cases.Title(language.Und).String default: return nil, fmt.Errorf( - "mlr %s: case option must be specified using one of -u, -l, -s, -t.", + "mlr %s: case option must be specified using one of -u, -l, -s, -t", verbNameCase, ) } diff --git a/pkg/transformers/label.go b/pkg/transformers/label.go index 0339080935..3ad6535956 100644 --- a/pkg/transformers/label.go +++ b/pkg/transformers/label.go @@ -104,7 +104,7 @@ func NewTransformerLabel( for _, newName := range newNames { _, ok := uniquenessChecker[newName] if ok { - return nil, fmt.Errorf("mlr label: labels must be unique; got duplicate \"%s\"\n", newName) + return nil, fmt.Errorf(`mlr label: labels must be unique; got duplicate "%s"`, newName) } uniquenessChecker[newName] = true } diff --git a/pkg/transformers/merge_fields.go b/pkg/transformers/merge_fields.go index 56fe0bd0df..f16a9d31ec 100644 --- a/pkg/transformers/merge_fields.go +++ b/pkg/transformers/merge_fields.go @@ -254,7 +254,7 @@ func NewTransformerMergeFields( for _, accumulatorName := range accumulatorNameList { if !utils.ValidateStats1AccumulatorName(accumulatorName) { return nil, fmt.Errorf( - "mlr %s: accumulator \"%s\" not found.\n", + `mlr %s: accumulator "%s" not found`, verbNameMergeFields, accumulatorName, ) } diff --git a/pkg/transformers/put_or_filter.go b/pkg/transformers/put_or_filter.go index 34e2e12d95..9749033452 100644 --- a/pkg/transformers/put_or_filter.go +++ b/pkg/transformers/put_or_filter.go @@ -73,7 +73,7 @@ func transformerPutOrFilterUsage( Since the expression pieces are simply concatenated, please be sure to use intervening semicolons to separate expressions.) --s name=value: Predefines out-of-stream variable @name to have +-s name=value: Predefines out-of-stream variable @name to have Thus mlr put -s foo=97 '$column += @foo' is like mlr put 'begin {@foo = 97} $column += @foo'. The value part is subject to type-inferencing. @@ -473,7 +473,7 @@ func NewTransformerPut( for _, preset := range presets { pair := strings.SplitN(preset, "=", 2) if len(pair) != 2 { - return nil, fmt.Errorf("missing \"=\" in preset expression \"%s\".", preset) + return nil, fmt.Errorf(`missing "=" in preset expression "%s"`, preset) } key := pair[0] svalue := pair[1] diff --git a/pkg/transformers/seqgen.go b/pkg/transformers/seqgen.go index 5700a4ea5a..560df4ed30 100644 --- a/pkg/transformers/seqgen.go +++ b/pkg/transformers/seqgen.go @@ -156,7 +156,7 @@ func NewTransformerSeqgen( if fstart == fstop { doneComparator = bifs.BIF_equals } else { - return nil, fmt.Errorf("mlr seqgen: step must not be zero unless start == stop.") + return nil, fmt.Errorf("mlr seqgen: step must not be zero unless start == stop") } } diff --git a/pkg/transformers/stats1.go b/pkg/transformers/stats1.go index 3b26be5641..1f924aa2d1 100644 --- a/pkg/transformers/stats1.go +++ b/pkg/transformers/stats1.go @@ -312,7 +312,7 @@ func NewTransformerStats1( ) (*TransformerStats1, error) { for _, name := range accumulatorNameList { if !utils.ValidateStats1AccumulatorName(name) { - return nil, fmt.Errorf("mlr stats1: accumulator \"%s\" not found.", name) + return nil, fmt.Errorf(`mlr stats1: accumulator "%s" not found`, name) } } diff --git a/pkg/transformers/stats2.go b/pkg/transformers/stats2.go index 47dc60387a..f1e9d94de0 100644 --- a/pkg/transformers/stats2.go +++ b/pkg/transformers/stats2.go @@ -207,7 +207,7 @@ func NewTransformerStats2( ) (*TransformerStats2, error) { for _, name := range accumulatorNameList { if !utils.ValidateStats2AccumulatorName(name) { - return nil, fmt.Errorf("mlr stats2: accumulator \"%s\" not found.", name) + return nil, fmt.Errorf(`mlr stats2: accumulator "%s" not found`, name) } } diff --git a/pkg/transformers/step.go b/pkg/transformers/step.go index 7ecafaf701..fcf5d0eeef 100644 --- a/pkg/transformers/step.go +++ b/pkg/transformers/step.go @@ -282,12 +282,12 @@ func NewTransformerStep( ) (*TransformerStep, error) { if len(stepperInputs) == 0 || len(valueFieldNames) == 0 { - return nil, fmt.Errorf("mlr %s: -a and -f are both required arguments.", verbNameStep) + return nil, fmt.Errorf("mlr %s: -a and -f are both required arguments", verbNameStep) } if len(stringAlphas) != 0 && len(ewmaSuffixes) != 0 { if len(ewmaSuffixes) != len(stringAlphas) { return nil, fmt.Errorf( - "mlr %s: If -d and -o are provided, their values must have the same length.", verbNameStep, + "mlr %s: If -d and -o are provided, their values must have the same length", verbNameStep, ) } } diff --git a/pkg/types/mlrval_typing.go b/pkg/types/mlrval_typing.go index 8adc5b010c..4eeb60269c 100644 --- a/pkg/types/mlrval_typing.go +++ b/pkg/types/mlrval_typing.go @@ -24,7 +24,7 @@ func NewTypeGatedMlrvalName( ) (*TypeGatedMlrvalName, error) { typeMask, ok := mlrval.TypeNameToMask(typeName) if !ok { - return nil, fmt.Errorf("mlr: couldn't resolve type name \"%s\".", typeName) + return nil, fmt.Errorf(`mlr: couldn't resolve type name "%s"`, typeName) } return &TypeGatedMlrvalName{ Name: name, @@ -39,7 +39,7 @@ func (tname *TypeGatedMlrvalName) Check(value *mlrval.Mlrval) error { return nil } else { return fmt.Errorf( - "mlr: couldn't assign variable %s %s from value %s %s\n", + "mlr: couldn't assign variable %s %s from value %s %s", tname.TypeName, tname.Name, value.GetTypeName(), value.String(), ) } diff --git a/test/cases/cli-help/0001/expout b/test/cases/cli-help/0001/expout index 3265d1e0c7..bc366781e5 100644 --- a/test/cases/cli-help/0001/expout +++ b/test/cases/cli-help/0001/expout @@ -202,7 +202,7 @@ Options: Since the expression pieces are simply concatenated, please be sure to use intervening semicolons to separate expressions.) --s name=value: Predefines out-of-stream variable @name to have +-s name=value: Predefines out-of-stream variable @name to have Thus mlr put -s foo=97 '$column += @foo' is like mlr put 'begin {@foo = 97} $column += @foo'. The value part is subject to type-inferencing. @@ -681,7 +681,7 @@ Options: Since the expression pieces are simply concatenated, please be sure to use intervening semicolons to separate expressions.) --s name=value: Predefines out-of-stream variable @name to have +-s name=value: Predefines out-of-stream variable @name to have Thus mlr put -s foo=97 '$column += @foo' is like mlr put 'begin {@foo = 97} $column += @foo'. The value part is subject to type-inferencing. diff --git a/test/cases/dsl-argpass-typedecl/0002/experr b/test/cases/dsl-argpass-typedecl/0002/experr index 49cdce4a47..49d1b3f4bd 100644 --- a/test/cases/dsl-argpass-typedecl/0002/experr +++ b/test/cases/dsl-argpass-typedecl/0002/experr @@ -1 +1 @@ -mlr: couldn't assign variable int i from value float 0.34679014 +mlr: couldn't assign variable int i from value float 0.34679014 \ No newline at end of file diff --git a/test/cases/dsl-argpass-typedecl/0003/experr b/test/cases/dsl-argpass-typedecl/0003/experr index 93b3d02d8c..88075a5918 100644 --- a/test/cases/dsl-argpass-typedecl/0003/experr +++ b/test/cases/dsl-argpass-typedecl/0003/experr @@ -1 +1 @@ -mlr: couldn't assign variable int function return value from value float 3.79679014 +mlr: couldn't assign variable int function return value from value float 3.79679014 \ No newline at end of file diff --git a/test/cases/dsl-argpass-typedecl/0004/experr b/test/cases/dsl-argpass-typedecl/0004/experr index 8289c8c80b..e3de7b5d2f 100644 --- a/test/cases/dsl-argpass-typedecl/0004/experr +++ b/test/cases/dsl-argpass-typedecl/0004/experr @@ -1 +1 @@ -mlr: couldn't assign variable int function return value from value float 4.45000000 +mlr: couldn't assign variable int function return value from value float 4.45000000 \ No newline at end of file diff --git a/test/cases/dsl-argpass-typedecl/0005/experr b/test/cases/dsl-argpass-typedecl/0005/experr index 323a86f3fd..22ff28ed1a 100644 --- a/test/cases/dsl-argpass-typedecl/0005/experr +++ b/test/cases/dsl-argpass-typedecl/0005/experr @@ -1 +1 @@ -mlr: couldn't assign variable int function return value from value error (error) +mlr: couldn't assign variable int function return value from value error (error) \ No newline at end of file diff --git a/test/cases/dsl-argpass-typedecl/0007/experr b/test/cases/dsl-argpass-typedecl/0007/experr index 85b8be44b0..49cdce4a47 100644 --- a/test/cases/dsl-argpass-typedecl/0007/experr +++ b/test/cases/dsl-argpass-typedecl/0007/experr @@ -1,2 +1 @@ mlr: couldn't assign variable int i from value float 0.34679014 - diff --git a/test/cases/dsl-argpass-typedecl/0008/experr b/test/cases/dsl-argpass-typedecl/0008/experr index 1dc1c87a07..4b9795ee19 100644 --- a/test/cases/dsl-argpass-typedecl/0008/experr +++ b/test/cases/dsl-argpass-typedecl/0008/experr @@ -1,2 +1 @@ mlr: couldn't assign variable num i from value string a - diff --git a/test/cases/dsl-array-map-indexing/0005/experr b/test/cases/dsl-array-map-indexing/0005/experr index 3f242c2b79..d2d9642018 100644 --- a/test/cases/dsl-array-map-indexing/0005/experr +++ b/test/cases/dsl-array-map-indexing/0005/experr @@ -1 +1 @@ -mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0006/experr b/test/cases/dsl-array-map-indexing/0006/experr index 40195c5a18..f6f1ef0d11 100644 --- a/test/cases/dsl-array-map-indexing/0006/experr +++ b/test/cases/dsl-array-map-indexing/0006/experr @@ -1 +1 @@ -mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0007/experr b/test/cases/dsl-array-map-indexing/0007/experr index 3f242c2b79..d2d9642018 100644 --- a/test/cases/dsl-array-map-indexing/0007/experr +++ b/test/cases/dsl-array-map-indexing/0007/experr @@ -1 +1 @@ -mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0035/experr b/test/cases/dsl-array-map-indexing/0035/experr index 3f242c2b79..d2d9642018 100644 --- a/test/cases/dsl-array-map-indexing/0035/experr +++ b/test/cases/dsl-array-map-indexing/0035/experr @@ -1 +1 @@ -mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0036/experr b/test/cases/dsl-array-map-indexing/0036/experr index 3f242c2b79..d2d9642018 100644 --- a/test/cases/dsl-array-map-indexing/0036/experr +++ b/test/cases/dsl-array-map-indexing/0036/experr @@ -1 +1 @@ -mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0068/experr b/test/cases/dsl-array-map-indexing/0068/experr index 3f242c2b79..d2d9642018 100644 --- a/test/cases/dsl-array-map-indexing/0068/experr +++ b/test/cases/dsl-array-map-indexing/0068/experr @@ -1 +1 @@ -mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[...]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-array-map-indexing/0069/experr b/test/cases/dsl-array-map-indexing/0069/experr index 40195c5a18..f6f1ef0d11 100644 --- a/test/cases/dsl-array-map-indexing/0069/experr +++ b/test/cases/dsl-array-map-indexing/0069/experr @@ -1 +1 @@ -mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$'. +mlr: '[[[...]]]' is allowed on assignment left-hand sides only when immediately preceded by '$' diff --git a/test/cases/dsl-context-specific-validation/0001/experr b/test/cases/dsl-context-specific-validation/0001/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-context-specific-validation/0001/experr +++ b/test/cases/dsl-context-specific-validation/0001/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-context-specific-validation/0002/experr b/test/cases/dsl-context-specific-validation/0002/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-context-specific-validation/0002/experr +++ b/test/cases/dsl-context-specific-validation/0002/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-context-specific-validation/0003/experr b/test/cases/dsl-context-specific-validation/0003/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-context-specific-validation/0003/experr +++ b/test/cases/dsl-context-specific-validation/0003/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-context-specific-validation/0004/experr b/test/cases/dsl-context-specific-validation/0004/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-context-specific-validation/0004/experr +++ b/test/cases/dsl-context-specific-validation/0004/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-context-specific-validation/0005/experr b/test/cases/dsl-context-specific-validation/0005/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0005/experr +++ b/test/cases/dsl-context-specific-validation/0005/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0006/experr b/test/cases/dsl-context-specific-validation/0006/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0006/experr +++ b/test/cases/dsl-context-specific-validation/0006/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0007/experr b/test/cases/dsl-context-specific-validation/0007/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0007/experr +++ b/test/cases/dsl-context-specific-validation/0007/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0008/experr b/test/cases/dsl-context-specific-validation/0008/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0008/experr +++ b/test/cases/dsl-context-specific-validation/0008/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0009/experr b/test/cases/dsl-context-specific-validation/0009/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0009/experr +++ b/test/cases/dsl-context-specific-validation/0009/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0010/experr b/test/cases/dsl-context-specific-validation/0010/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0010/experr +++ b/test/cases/dsl-context-specific-validation/0010/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0011/experr b/test/cases/dsl-context-specific-validation/0011/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0011/experr +++ b/test/cases/dsl-context-specific-validation/0011/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0012/experr b/test/cases/dsl-context-specific-validation/0012/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0012/experr +++ b/test/cases/dsl-context-specific-validation/0012/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0013/experr b/test/cases/dsl-context-specific-validation/0013/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0013/experr +++ b/test/cases/dsl-context-specific-validation/0013/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0014/experr b/test/cases/dsl-context-specific-validation/0014/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-specific-validation/0014/experr +++ b/test/cases/dsl-context-specific-validation/0014/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-specific-validation/0015/experr b/test/cases/dsl-context-specific-validation/0015/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-specific-validation/0015/experr +++ b/test/cases/dsl-context-specific-validation/0015/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-specific-validation/0016/experr b/test/cases/dsl-context-specific-validation/0016/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-specific-validation/0016/experr +++ b/test/cases/dsl-context-specific-validation/0016/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-specific-validation/0017/experr b/test/cases/dsl-context-specific-validation/0017/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-specific-validation/0017/experr +++ b/test/cases/dsl-context-specific-validation/0017/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-specific-validation/0018/experr b/test/cases/dsl-context-specific-validation/0018/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-specific-validation/0018/experr +++ b/test/cases/dsl-context-specific-validation/0018/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-specific-validation/0024/experr b/test/cases/dsl-context-specific-validation/0024/experr index 0991fd583b..326c8c258d 100644 --- a/test/cases/dsl-context-specific-validation/0024/experr +++ b/test/cases/dsl-context-specific-validation/0024/experr @@ -1 +1 @@ -mlr: filter expressions must not also contain the "filter" keyword. +mlr: filter expressions must not also contain the "filter" keyword diff --git a/test/cases/dsl-context-specific-validation/0025/experr b/test/cases/dsl-context-specific-validation/0025/experr index 0991fd583b..326c8c258d 100644 --- a/test/cases/dsl-context-specific-validation/0025/experr +++ b/test/cases/dsl-context-specific-validation/0025/experr @@ -1 +1 @@ -mlr: filter expressions must not also contain the "filter" keyword. +mlr: filter expressions must not also contain the "filter" keyword diff --git a/test/cases/dsl-context-validation/0001/experr b/test/cases/dsl-context-validation/0001/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-context-validation/0001/experr +++ b/test/cases/dsl-context-validation/0001/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0002/experr b/test/cases/dsl-context-validation/0002/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-context-validation/0002/experr +++ b/test/cases/dsl-context-validation/0002/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0003/experr b/test/cases/dsl-context-validation/0003/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-context-validation/0003/experr +++ b/test/cases/dsl-context-validation/0003/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0004/experr b/test/cases/dsl-context-validation/0004/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-context-validation/0004/experr +++ b/test/cases/dsl-context-validation/0004/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0005/experr b/test/cases/dsl-context-validation/0005/experr index 28403d1083..105a572c54 100644 --- a/test/cases/dsl-context-validation/0005/experr +++ b/test/cases/dsl-context-validation/0005/experr @@ -1 +1 @@ -mlr: func blocks can only be at top level. +mlr: func blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0006/experr b/test/cases/dsl-context-validation/0006/experr index aa49138984..bb100265c5 100644 --- a/test/cases/dsl-context-validation/0006/experr +++ b/test/cases/dsl-context-validation/0006/experr @@ -1 +1 @@ -mlr: subr blocks can only be at top level. +mlr: subr blocks can only be at top level diff --git a/test/cases/dsl-context-validation/0007/experr b/test/cases/dsl-context-validation/0007/experr index e8c49427ba..5bfdbce141 100644 --- a/test/cases/dsl-context-validation/0007/experr +++ b/test/cases/dsl-context-validation/0007/experr @@ -1 +1 @@ -mlr: begin/end blocks cannot refer to records via $x, $*, etc. +mlr: begin/end blocks cannot refer to records via $x, $*, etc diff --git a/test/cases/dsl-context-validation/0008/experr b/test/cases/dsl-context-validation/0008/experr index 9979f9d900..62e02c1929 100644 --- a/test/cases/dsl-context-validation/0008/experr +++ b/test/cases/dsl-context-validation/0008/experr @@ -1 +1 @@ -mlr: return statements are only valid within func/subr blocks. +mlr: return statements are only valid within func/subr blocks diff --git a/test/cases/dsl-context-validation/0009/experr b/test/cases/dsl-context-validation/0009/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-validation/0009/experr +++ b/test/cases/dsl-context-validation/0009/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-validation/0010/experr b/test/cases/dsl-context-validation/0010/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-validation/0010/experr +++ b/test/cases/dsl-context-validation/0010/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-validation/0011/experr b/test/cases/dsl-context-validation/0011/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-validation/0011/experr +++ b/test/cases/dsl-context-validation/0011/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-context-validation/0012/experr b/test/cases/dsl-context-validation/0012/experr index f70d4eb666..88c27a41c9 100644 --- a/test/cases/dsl-context-validation/0012/experr +++ b/test/cases/dsl-context-validation/0012/experr @@ -1 +1 @@ -mlr: break statements are only valid within for/do/while loops. +mlr: break statements are only valid within for/do/while loops diff --git a/test/cases/dsl-empty-statements/0002/experr b/test/cases/dsl-empty-statements/0002/experr index 7d441dec9f..ade7a9c325 100644 --- a/test/cases/dsl-empty-statements/0002/experr +++ b/test/cases/dsl-empty-statements/0002/experr @@ -1 +1 @@ -mlr: filter statement must not be empty. +mlr: filter statement must not be empty diff --git a/test/cases/dsl-env/0008/experr b/test/cases/dsl-env/0008/experr index c58cbb2900..624b07c03d 100644 --- a/test/cases/dsl-env/0008/experr +++ b/test/cases/dsl-env/0008/experr @@ -1 +1 @@ -mlr: ENV[...] cannot be indexed. +mlr: ENV[...] cannot be indexed diff --git a/test/cases/dsl-first-class-functions/sort-errors-04/experr b/test/cases/dsl-first-class-functions/sort-errors-04/experr index 41f95ed46d..4a9e7afdae 100644 --- a/test/cases/dsl-first-class-functions/sort-errors-04/experr +++ b/test/cases/dsl-first-class-functions/sort-errors-04/experr @@ -1,2 +1 @@ -mlr: function sort takes maximum argument count 2; got 4. - +mlr: function sort takes maximum argument count 2; got 4 diff --git a/test/cases/dsl-first-class-functions/sort-errors-05/experr b/test/cases/dsl-first-class-functions/sort-errors-05/experr index 41f95ed46d..4a9e7afdae 100644 --- a/test/cases/dsl-first-class-functions/sort-errors-05/experr +++ b/test/cases/dsl-first-class-functions/sort-errors-05/experr @@ -1,2 +1 @@ -mlr: function sort takes maximum argument count 2; got 4. - +mlr: function sort takes maximum argument count 2; got 4 diff --git a/test/cases/dsl-for-oosvar-loops/0005/experr b/test/cases/dsl-for-oosvar-loops/0005/experr index 69c0cca99b..31b1667e30 100644 --- a/test/cases/dsl-for-oosvar-loops/0005/experr +++ b/test/cases/dsl-for-oosvar-loops/0005/experr @@ -1 +1 @@ -mlr: redefinition of variable k in the same scope. +mlr: redefinition of variable k in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0006/experr b/test/cases/dsl-for-oosvar-loops/0006/experr index 69c0cca99b..31b1667e30 100644 --- a/test/cases/dsl-for-oosvar-loops/0006/experr +++ b/test/cases/dsl-for-oosvar-loops/0006/experr @@ -1 +1 @@ -mlr: redefinition of variable k in the same scope. +mlr: redefinition of variable k in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0007/experr b/test/cases/dsl-for-oosvar-loops/0007/experr index 5226846afb..e26fb2c945 100644 --- a/test/cases/dsl-for-oosvar-loops/0007/experr +++ b/test/cases/dsl-for-oosvar-loops/0007/experr @@ -1 +1 @@ -mlr: redefinition of variable a in the same scope. +mlr: redefinition of variable a in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0008/experr b/test/cases/dsl-for-oosvar-loops/0008/experr index 5226846afb..e26fb2c945 100644 --- a/test/cases/dsl-for-oosvar-loops/0008/experr +++ b/test/cases/dsl-for-oosvar-loops/0008/experr @@ -1 +1 @@ -mlr: redefinition of variable a in the same scope. +mlr: redefinition of variable a in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0009/experr b/test/cases/dsl-for-oosvar-loops/0009/experr index 014bc942f4..0ec7e995f2 100644 --- a/test/cases/dsl-for-oosvar-loops/0009/experr +++ b/test/cases/dsl-for-oosvar-loops/0009/experr @@ -1 +1 @@ -mlr: redefinition of variable b in the same scope. +mlr: redefinition of variable b in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0010/experr b/test/cases/dsl-for-oosvar-loops/0010/experr index 5226846afb..e26fb2c945 100644 --- a/test/cases/dsl-for-oosvar-loops/0010/experr +++ b/test/cases/dsl-for-oosvar-loops/0010/experr @@ -1 +1 @@ -mlr: redefinition of variable a in the same scope. +mlr: redefinition of variable a in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0011/experr b/test/cases/dsl-for-oosvar-loops/0011/experr index 5226846afb..e26fb2c945 100644 --- a/test/cases/dsl-for-oosvar-loops/0011/experr +++ b/test/cases/dsl-for-oosvar-loops/0011/experr @@ -1 +1 @@ -mlr: redefinition of variable a in the same scope. +mlr: redefinition of variable a in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0012/experr b/test/cases/dsl-for-oosvar-loops/0012/experr index 5226846afb..e26fb2c945 100644 --- a/test/cases/dsl-for-oosvar-loops/0012/experr +++ b/test/cases/dsl-for-oosvar-loops/0012/experr @@ -1 +1 @@ -mlr: redefinition of variable a in the same scope. +mlr: redefinition of variable a in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0013/experr b/test/cases/dsl-for-oosvar-loops/0013/experr index 014bc942f4..0ec7e995f2 100644 --- a/test/cases/dsl-for-oosvar-loops/0013/experr +++ b/test/cases/dsl-for-oosvar-loops/0013/experr @@ -1 +1 @@ -mlr: redefinition of variable b in the same scope. +mlr: redefinition of variable b in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0014/experr b/test/cases/dsl-for-oosvar-loops/0014/experr index 014bc942f4..0ec7e995f2 100644 --- a/test/cases/dsl-for-oosvar-loops/0014/experr +++ b/test/cases/dsl-for-oosvar-loops/0014/experr @@ -1 +1 @@ -mlr: redefinition of variable b in the same scope. +mlr: redefinition of variable b in the same scope diff --git a/test/cases/dsl-for-oosvar-loops/0015/experr b/test/cases/dsl-for-oosvar-loops/0015/experr index 91d20ead94..b5ded9d152 100644 --- a/test/cases/dsl-for-oosvar-loops/0015/experr +++ b/test/cases/dsl-for-oosvar-loops/0015/experr @@ -1 +1 @@ -mlr: redefinition of variable c in the same scope. +mlr: redefinition of variable c in the same scope diff --git a/test/cases/dsl-for-variants/0006/experr b/test/cases/dsl-for-variants/0006/experr index 3a9ad9c69c..0c37352742 100644 --- a/test/cases/dsl-for-variants/0006/experr +++ b/test/cases/dsl-for-variants/0006/experr @@ -1 +1 @@ -mlr: the triple-for continuation statement must be a bare boolean. +mlr: the triple-for continuation statement must be a bare boolean diff --git a/test/cases/dsl-for-variants/0008/experr b/test/cases/dsl-for-variants/0008/experr index 8c456cbf69..8e4a46c2e4 100644 --- a/test/cases/dsl-for-variants/0008/experr +++ b/test/cases/dsl-for-variants/0008/experr @@ -1 +1 @@ -mlr: the final triple-for continuation statement must be a bare boolean. +mlr: the final triple-for continuation statement must be a bare boolean diff --git a/test/cases/dsl-for-variants/0009/experr b/test/cases/dsl-for-variants/0009/experr index aeff07c4aa..f6e32effec 100644 --- a/test/cases/dsl-for-variants/0009/experr +++ b/test/cases/dsl-for-variants/0009/experr @@ -1 +1 @@ -mlr: the non-final triple-for continuation statements must be assignments. +mlr: the non-final triple-for continuation statements must be assignments diff --git a/test/cases/dsl-for-variants/0010/experr b/test/cases/dsl-for-variants/0010/experr index aeff07c4aa..f6e32effec 100644 --- a/test/cases/dsl-for-variants/0010/experr +++ b/test/cases/dsl-for-variants/0010/experr @@ -1 +1 @@ -mlr: the non-final triple-for continuation statements must be assignments. +mlr: the non-final triple-for continuation statements must be assignments diff --git a/test/cases/dsl-forbind-typedecl/0002/experr b/test/cases/dsl-forbind-typedecl/0002/experr index 870536d9d1..2d3ce42b4a 100644 --- a/test/cases/dsl-forbind-typedecl/0002/experr +++ b/test/cases/dsl-forbind-typedecl/0002/experr @@ -1,2 +1 @@ mlr: couldn't assign variable float i from value int 0 - diff --git a/test/cases/dsl-forbind-typedecl/0004/experr b/test/cases/dsl-forbind-typedecl/0004/experr index f19d3e91bf..3508830032 100644 --- a/test/cases/dsl-forbind-typedecl/0004/experr +++ b/test/cases/dsl-forbind-typedecl/0004/experr @@ -1,2 +1 @@ mlr: couldn't assign variable int i from value float 1.50000000 - diff --git a/test/cases/dsl-forbind-typedecl/0005/experr b/test/cases/dsl-forbind-typedecl/0005/experr index 02ec7d3671..bc277f19f0 100644 --- a/test/cases/dsl-forbind-typedecl/0005/experr +++ b/test/cases/dsl-forbind-typedecl/0005/experr @@ -1,2 +1 @@ mlr: couldn't assign variable int i from value float 1.00000000 - diff --git a/test/cases/dsl-lashed-emitp-singles/0075/experr b/test/cases/dsl-lashed-emitp-singles/0075/experr index abe43d98af..c90eb2309e 100644 --- a/test/cases/dsl-lashed-emitp-singles/0075/experr +++ b/test/cases/dsl-lashed-emitp-singles/0075/experr @@ -1 +1 @@ -mlr: lashed-emit node types must be local variables, field names, or oosvars; got map literal. +mlr: lashed-emit node types must be local variables, field names, or oosvars; got map literal diff --git a/test/cases/dsl-line-number-column-number/cond/experr b/test/cases/dsl-line-number-column-number/cond/experr index 7d9b1ed3f1..0993a5d513 100644 --- a/test/cases/dsl-line-number-column-number/cond/experr +++ b/test/cases/dsl-line-number-column-number/cond/experr @@ -1 +1 @@ -mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 3. +mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 3 diff --git a/test/cases/dsl-line-number-column-number/do-while/experr b/test/cases/dsl-line-number-column-number/do-while/experr index 2ae50c49ae..4b2d5dfa81 100644 --- a/test/cases/dsl-line-number-column-number/do-while/experr +++ b/test/cases/dsl-line-number-column-number/do-while/experr @@ -1 +1 @@ -mlr: conditional expression did not evaluate to boolean at DSL expression line 6 column 12. +mlr: conditional expression did not evaluate to boolean at DSL expression line 6 column 12 diff --git a/test/cases/dsl-line-number-column-number/for/experr b/test/cases/dsl-line-number-column-number/for/experr index a99b7edd3c..0c385cf261 100644 --- a/test/cases/dsl-line-number-column-number/for/experr +++ b/test/cases/dsl-line-number-column-number/for/experr @@ -1 +1 @@ -mlr: for-loop continuation did not evaluate to boolean at DSL expression line 5 column 9. +mlr: for-loop continuation did not evaluate to boolean at DSL expression line 5 column 9 diff --git a/test/cases/dsl-line-number-column-number/if/experr b/test/cases/dsl-line-number-column-number/if/experr index 2c953ec07d..8b4f058c6f 100644 --- a/test/cases/dsl-line-number-column-number/if/experr +++ b/test/cases/dsl-line-number-column-number/if/experr @@ -1 +1 @@ -mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 7. +mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 7 diff --git a/test/cases/dsl-line-number-column-number/while/experr b/test/cases/dsl-line-number-column-number/while/experr index 977d70e73f..eb2268d9f1 100644 --- a/test/cases/dsl-line-number-column-number/while/experr +++ b/test/cases/dsl-line-number-column-number/while/experr @@ -1 +1 @@ -mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 10. +mlr: conditional expression did not evaluate to boolean at DSL expression line 5 column 10 diff --git a/test/cases/dsl-local-map-variable-typedecl/0003/experr b/test/cases/dsl-local-map-variable-typedecl/0003/experr index 74d6d80366..35f4a78afe 100644 --- a/test/cases/dsl-local-map-variable-typedecl/0003/experr +++ b/test/cases/dsl-local-map-variable-typedecl/0003/experr @@ -1,2 +1 @@ mlr: couldn't assign variable map a from value int 2 - diff --git a/test/cases/dsl-local-map-variable-typedecl/0004/experr b/test/cases/dsl-local-map-variable-typedecl/0004/experr index 74d6d80366..35f4a78afe 100644 --- a/test/cases/dsl-local-map-variable-typedecl/0004/experr +++ b/test/cases/dsl-local-map-variable-typedecl/0004/experr @@ -1,2 +1 @@ mlr: couldn't assign variable map a from value int 2 - diff --git a/test/cases/dsl-localvar-typedecl/0002/experr b/test/cases/dsl-localvar-typedecl/0002/experr index 7bf2edfba5..80caea3e42 100644 --- a/test/cases/dsl-localvar-typedecl/0002/experr +++ b/test/cases/dsl-localvar-typedecl/0002/experr @@ -1,2 +1 @@ mlr: couldn't assign variable str a from value int 1 - diff --git a/test/cases/dsl-localvar-typedecl/0003/experr b/test/cases/dsl-localvar-typedecl/0003/experr index f2baa162e7..89b17ca3e9 100644 --- a/test/cases/dsl-localvar-typedecl/0003/experr +++ b/test/cases/dsl-localvar-typedecl/0003/experr @@ -1,2 +1 @@ mlr: couldn't assign variable int a from value string pan - diff --git a/test/cases/dsl-map-funcs/0003/experr b/test/cases/dsl-map-funcs/0003/experr index b46352b1b4..aebcb76c3e 100644 --- a/test/cases/dsl-map-funcs/0003/experr +++ b/test/cases/dsl-map-funcs/0003/experr @@ -1,2 +1 @@ -mlr: function mapexcept takes minimum argument count 1; got 0. - +mlr: function mapexcept takes minimum argument count 1; got 0 diff --git a/test/cases/dsl-map-funcs/0004/experr b/test/cases/dsl-map-funcs/0004/experr index cdbfc0f298..a177b4adcc 100644 --- a/test/cases/dsl-map-funcs/0004/experr +++ b/test/cases/dsl-map-funcs/0004/experr @@ -1,2 +1 @@ -mlr: function mapselect takes minimum argument count 1; got 0. - +mlr: function mapselect takes minimum argument count 1; got 0 diff --git a/test/cases/dsl-mapsum-mapdiff-mapexcept/0003/experr b/test/cases/dsl-mapsum-mapdiff-mapexcept/0003/experr index b46352b1b4..aebcb76c3e 100644 --- a/test/cases/dsl-mapsum-mapdiff-mapexcept/0003/experr +++ b/test/cases/dsl-mapsum-mapdiff-mapexcept/0003/experr @@ -1,2 +1 @@ -mlr: function mapexcept takes minimum argument count 1; got 0. - +mlr: function mapexcept takes minimum argument count 1; got 0 diff --git a/test/cases/dsl-mapsum-mapdiff-mapexcept/0004/experr b/test/cases/dsl-mapsum-mapdiff-mapexcept/0004/experr index cdbfc0f298..a177b4adcc 100644 --- a/test/cases/dsl-mapsum-mapdiff-mapexcept/0004/experr +++ b/test/cases/dsl-mapsum-mapdiff-mapexcept/0004/experr @@ -1,2 +1 @@ -mlr: function mapselect takes minimum argument count 1; got 0. - +mlr: function mapselect takes minimum argument count 1; got 0 diff --git a/test/cases/dsl-mapvar-assignments/0050/experr b/test/cases/dsl-mapvar-assignments/0050/experr index 7da47746ef..c99edb2b9c 100644 --- a/test/cases/dsl-mapvar-assignments/0050/experr +++ b/test/cases/dsl-mapvar-assignments/0050/experr @@ -1,2 +1 @@ mlr: couldn't assign variable map o from value int 1 - diff --git a/test/cases/dsl-mapvar-assignments/0056/experr b/test/cases/dsl-mapvar-assignments/0056/experr index 7da47746ef..c99edb2b9c 100644 --- a/test/cases/dsl-mapvar-assignments/0056/experr +++ b/test/cases/dsl-mapvar-assignments/0056/experr @@ -1,2 +1 @@ mlr: couldn't assign variable map o from value int 1 - diff --git a/test/cases/dsl-mapvars-udfs-subroutines/0006/experr b/test/cases/dsl-mapvars-udfs-subroutines/0006/experr index d99ee65632..e82e26c866 100644 --- a/test/cases/dsl-mapvars-udfs-subroutines/0006/experr +++ b/test/cases/dsl-mapvars-udfs-subroutines/0006/experr @@ -1 +1 @@ -mlr: couldn't assign variable int x from value float 0.34679014 +mlr: couldn't assign variable int x from value float 0.34679014 \ No newline at end of file diff --git a/test/cases/dsl-mapvars-udfs-subroutines/0008/experr b/test/cases/dsl-mapvars-udfs-subroutines/0008/experr index d99ee65632..e82e26c866 100644 --- a/test/cases/dsl-mapvars-udfs-subroutines/0008/experr +++ b/test/cases/dsl-mapvars-udfs-subroutines/0008/experr @@ -1 +1 @@ -mlr: couldn't assign variable int x from value float 0.34679014 +mlr: couldn't assign variable int x from value float 0.34679014 \ No newline at end of file diff --git a/test/cases/dsl-mapvars-udfs-subroutines/0010/experr b/test/cases/dsl-mapvars-udfs-subroutines/0010/experr index d99ee65632..e82e26c866 100644 --- a/test/cases/dsl-mapvars-udfs-subroutines/0010/experr +++ b/test/cases/dsl-mapvars-udfs-subroutines/0010/experr @@ -1 +1 @@ -mlr: couldn't assign variable int x from value float 0.34679014 +mlr: couldn't assign variable int x from value float 0.34679014 \ No newline at end of file diff --git a/test/cases/dsl-mapvars-udfs-subroutines/0011/experr b/test/cases/dsl-mapvars-udfs-subroutines/0011/experr index 5ee09d0dca..23c61d2400 100644 --- a/test/cases/dsl-mapvars-udfs-subroutines/0011/experr +++ b/test/cases/dsl-mapvars-udfs-subroutines/0011/experr @@ -1 +1 @@ -mlr: couldn't assign variable int function return value from value absent (absent) +mlr: couldn't assign variable int function return value from value absent (absent) \ No newline at end of file diff --git a/test/cases/dsl-mapvars-udfs-subroutines/0012/experr b/test/cases/dsl-mapvars-udfs-subroutines/0012/experr index 75f9941ea1..b52b230369 100644 --- a/test/cases/dsl-mapvars-udfs-subroutines/0012/experr +++ b/test/cases/dsl-mapvars-udfs-subroutines/0012/experr @@ -1,2 +1 @@ mlr: couldn't assign variable var b from value error (error) - diff --git a/test/cases/dsl-no-filter-in-filter/0002/experr b/test/cases/dsl-no-filter-in-filter/0002/experr index 0991fd583b..326c8c258d 100644 --- a/test/cases/dsl-no-filter-in-filter/0002/experr +++ b/test/cases/dsl-no-filter-in-filter/0002/experr @@ -1 +1 @@ -mlr: filter expressions must not also contain the "filter" keyword. +mlr: filter expressions must not also contain the "filter" keyword diff --git a/test/cases/dsl-parse/0112/experr b/test/cases/dsl-parse/0112/experr index c83d31e2e8..5e6a6bb142 100644 --- a/test/cases/dsl-parse/0112/experr +++ b/test/cases/dsl-parse/0112/experr @@ -1 +1 @@ -mlr: int literal is not valid for unset statement. +mlr: int literal is not valid for unset statement diff --git a/test/cases/dsl-subr/0007/experr b/test/cases/dsl-subr/0007/experr index 57f65d06e4..54423defac 100644 --- a/test/cases/dsl-subr/0007/experr +++ b/test/cases/dsl-subr/0007/experr @@ -1 +1 @@ -mlr: return statements in subr blocks must not return a value. +mlr: return statements in subr blocks must not return a value diff --git a/test/cases/dsl-subr/0015/experr b/test/cases/dsl-subr/0015/experr index 96372b783e..374f3bf051 100644 --- a/test/cases/dsl-subr/0015/experr +++ b/test/cases/dsl-subr/0015/experr @@ -1 +1 @@ -mlr: subroutine named "s" has already been defined. +mlr: subroutine named "s" has already been defined diff --git a/test/cases/dsl-triple-for-loops/0015/experr b/test/cases/dsl-triple-for-loops/0015/experr index 3a9ad9c69c..0c37352742 100644 --- a/test/cases/dsl-triple-for-loops/0015/experr +++ b/test/cases/dsl-triple-for-loops/0015/experr @@ -1 +1 @@ -mlr: the triple-for continuation statement must be a bare boolean. +mlr: the triple-for continuation statement must be a bare boolean diff --git a/test/cases/dsl-triple-for-loops/0016/experr b/test/cases/dsl-triple-for-loops/0016/experr index aeff07c4aa..f6e32effec 100644 --- a/test/cases/dsl-triple-for-loops/0016/experr +++ b/test/cases/dsl-triple-for-loops/0016/experr @@ -1 +1 @@ -mlr: the non-final triple-for continuation statements must be assignments. +mlr: the non-final triple-for continuation statements must be assignments diff --git a/test/cases/dsl-typedecl/0004/experr b/test/cases/dsl-typedecl/0004/experr index 698f98f192..d773f96b4f 100644 --- a/test/cases/dsl-typedecl/0004/experr +++ b/test/cases/dsl-typedecl/0004/experr @@ -1,2 +1 @@ mlr: couldn't assign variable str x from value int 3 - diff --git a/test/cases/dsl-typedecl/0005/experr b/test/cases/dsl-typedecl/0005/experr index d1a7826227..a9603769fd 100644 --- a/test/cases/dsl-typedecl/0005/experr +++ b/test/cases/dsl-typedecl/0005/experr @@ -1,2 +1 @@ mlr: couldn't assign variable arr x from value int 3 - diff --git a/test/cases/dsl-typedecl/0009/experr b/test/cases/dsl-typedecl/0009/experr index d773f96b4f..4294ddc2e3 100644 --- a/test/cases/dsl-typedecl/0009/experr +++ b/test/cases/dsl-typedecl/0009/experr @@ -1 +1 @@ -mlr: couldn't assign variable str x from value int 3 +mlr: couldn't assign variable str x from value int 3 \ No newline at end of file diff --git a/test/cases/dsl-typedecl/0010/experr b/test/cases/dsl-typedecl/0010/experr index a9603769fd..55d3b8e4d7 100644 --- a/test/cases/dsl-typedecl/0010/experr +++ b/test/cases/dsl-typedecl/0010/experr @@ -1 +1 @@ -mlr: couldn't assign variable arr x from value int 3 +mlr: couldn't assign variable arr x from value int 3 \ No newline at end of file diff --git a/test/cases/dsl-typedecl/0014/experr b/test/cases/dsl-typedecl/0014/experr index 83d5d73ae2..84cc0ab082 100644 --- a/test/cases/dsl-typedecl/0014/experr +++ b/test/cases/dsl-typedecl/0014/experr @@ -1 +1 @@ -mlr: couldn't assign variable str function return value from value int 6 +mlr: couldn't assign variable str function return value from value int 6 \ No newline at end of file diff --git a/test/cases/dsl-typedecl/0015/experr b/test/cases/dsl-typedecl/0015/experr index 16aa9509e3..2e3bd9694c 100644 --- a/test/cases/dsl-typedecl/0015/experr +++ b/test/cases/dsl-typedecl/0015/experr @@ -1 +1 @@ -mlr: couldn't assign variable arr function return value from value int 6 +mlr: couldn't assign variable arr function return value from value int 6 \ No newline at end of file diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0004/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0004/experr index 57f65d06e4..54423defac 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0004/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0004/experr @@ -1 +1 @@ -mlr: return statements in subr blocks must not return a value. +mlr: return statements in subr blocks must not return a value diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0005/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0005/experr index 6ffaf460f3..8a639f9e1d 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0005/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0005/experr @@ -1 +1 @@ -mlr: return statements in func blocks must return a value. +mlr: return statements in func blocks must return a value diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0008/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0008/experr index 7c7da7e52d..17bba472cb 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0008/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0008/experr @@ -1 +1 @@ -mlr: function named "log" must not override a built-in function of the same name. +mlr: function named "log" must not override a built-in function of the same name diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0010/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0010/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0010/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0010/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0011/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0011/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0011/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0011/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0012/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0012/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0012/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0012/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0013/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0013/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0013/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0013/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0014/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0014/experr index 28403d1083..105a572c54 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0014/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0014/experr @@ -1 +1 @@ -mlr: func blocks can only be at top level. +mlr: func blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0015/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0015/experr index aa49138984..bb100265c5 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0015/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0015/experr @@ -1 +1 @@ -mlr: subr blocks can only be at top level. +mlr: subr blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0016/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0016/experr index 28403d1083..105a572c54 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0016/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0016/experr @@ -1 +1 @@ -mlr: func blocks can only be at top level. +mlr: func blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0017/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0017/experr index aa49138984..bb100265c5 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0017/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0017/experr @@ -1 +1 @@ -mlr: subr blocks can only be at top level. +mlr: subr blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0018/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0018/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0018/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0018/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0019/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0019/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0019/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0019/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0020/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0020/experr index 153ac97b29..9ccf96101b 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0020/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0020/experr @@ -1 +1 @@ -mlr: begin blocks can only be at top level. +mlr: begin blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0021/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0021/experr index 1bf2e1cd82..2e5c850a02 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0021/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0021/experr @@ -1 +1 @@ -mlr: end blocks can only be at top level. +mlr: end blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0022/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0022/experr index 28403d1083..105a572c54 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0022/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0022/experr @@ -1 +1 @@ -mlr: func blocks can only be at top level. +mlr: func blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0023/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0023/experr index aa49138984..bb100265c5 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0023/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0023/experr @@ -1 +1 @@ -mlr: subr blocks can only be at top level. +mlr: subr blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0024/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0024/experr index 28403d1083..105a572c54 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0024/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0024/experr @@ -1 +1 @@ -mlr: func blocks can only be at top level. +mlr: func blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0025/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0025/experr index aa49138984..bb100265c5 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0025/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0025/experr @@ -1 +1 @@ -mlr: subr blocks can only be at top level. +mlr: subr blocks can only be at top level diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0026/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0026/experr index 7c7da7e52d..17bba472cb 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0026/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0026/experr @@ -1 +1 @@ -mlr: function named "log" must not override a built-in function of the same name. +mlr: function named "log" must not override a built-in function of the same name diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0027/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0027/experr index c1c50ef4d0..e7f7b75227 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0027/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0027/experr @@ -1 +1 @@ -mlr: function named "f" has already been defined. +mlr: function named "f" has already been defined diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0028/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0028/experr index 96372b783e..374f3bf051 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0028/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0028/experr @@ -1 +1 @@ -mlr: subroutine named "s" has already been defined. +mlr: subroutine named "s" has already been defined diff --git a/test/cases/dsl-user-defined-functions-and-subroutines/0029/experr b/test/cases/dsl-user-defined-functions-and-subroutines/0029/experr index 96372b783e..374f3bf051 100644 --- a/test/cases/dsl-user-defined-functions-and-subroutines/0029/experr +++ b/test/cases/dsl-user-defined-functions-and-subroutines/0029/experr @@ -1 +1 @@ -mlr: subroutine named "s" has already been defined. +mlr: subroutine named "s" has already been defined diff --git a/test/cases/io-spec-tsv/0004/experr b/test/cases/io-spec-tsv/0004/experr index 77ead78b2d..a996791acb 100644 --- a/test/cases/io-spec-tsv/0004/experr +++ b/test/cases/io-spec-tsv/0004/experr @@ -1,2 +1 @@ -mlr: mlr: TSV header/data length mismatch 1 != 0 at filename test/cases/io-spec-tsv/0004/single-column-with-blank.tsv line 4. -. +mlr: mlr: TSV header/data length mismatch 1 != 0 at filename test/cases/io-spec-tsv/0004/single-column-with-blank.tsv line 4. diff --git a/test/cases/verb-label/0009/experr b/test/cases/verb-label/0009/experr index 615cfe2bf4..0933a079db 100644 --- a/test/cases/verb-label/0009/experr +++ b/test/cases/verb-label/0009/experr @@ -1 +1 @@ -mlr label: labels must be unique; got duplicate "d" +mlr label: labels must be unique; got duplicate "d" \ No newline at end of file diff --git a/test/cases/verb-stats1/0018/experr b/test/cases/verb-stats1/0018/experr index 03f44410a7..43dafc3633 100644 --- a/test/cases/verb-stats1/0018/experr +++ b/test/cases/verb-stats1/0018/experr @@ -1 +1 @@ -mlr stats1: accumulator "nonesuch" not found. +mlr stats1: accumulator "nonesuch" not found