@@ -135,17 +135,23 @@ internal class AstIdentifiersChecker(private val errors: IErrorReporter,
135135 private fun visitFunctionCall (call : IFunctionCall ) {
136136 when (val target = call.target.targetStatement(program)) {
137137 is Subroutine -> {
138- if (call.args.size != target.parameters.size)
139- errors.err(" invalid number of arguments" , call.args[0 ].position)
138+ if (call.args.size != target.parameters.size) {
139+ val pos = (if (call.args.any()) call.args[0 ] else (call as Node )).position
140+ errors.err(" invalid number of arguments" , pos)
141+ }
140142 }
141143 is BuiltinFunctionStatementPlaceholder -> {
142144 val func = BuiltinFunctions .getValue(target.name)
143- if (call.args.size != func.parameters.size)
144- errors.err(" invalid number of arguments" , call.args[0 ].position)
145+ if (call.args.size != func.parameters.size) {
146+ val pos = (if (call.args.any()) call.args[0 ] else (call as Node )).position
147+ errors.err(" invalid number of arguments" , pos)
148+ }
145149 }
146150 is Label -> {
147- if (call.args.isNotEmpty())
148- errors.err(" cannot use arguments when calling a label" , call.args[0 ].position)
151+ if (call.args.isNotEmpty()) {
152+ val pos = (if (call.args.any()) call.args[0 ] else (call as Node )).position
153+ errors.err(" cannot use arguments when calling a label" , pos)
154+ }
149155 }
150156 null -> {}
151157 else -> throw FatalAstException (" weird call target" )
0 commit comments