You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by de...@apache.org on 2017/08/24 23:52:42 UTC

systemml git commit: [SYSTEMML-1859] Throw error for function calls with extra input args

Repository: systemml
Updated Branches:
  refs/heads/master c495533b6 -> 100f2d606


[SYSTEMML-1859] Throw error for function calls with extra input args

If a function call contains more input arguments than defined by the function
signature, throw an error.

Example:
triple = function(double a) return (double z) { z = a*3; }
x = triple(10,11,12)
print(x)

Closes #633.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/100f2d60
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/100f2d60
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/100f2d60

Branch: refs/heads/master
Commit: 100f2d6061e945a914d25eeba458164997b4bb1a
Parents: c495533
Author: Deron Eriksson <de...@apache.org>
Authored: Thu Aug 24 16:50:11 2017 -0700
Committer: Deron Eriksson <de...@apache.org>
Committed: Thu Aug 24 16:50:11 2017 -0700

----------------------------------------------------------------------
 src/main/java/org/apache/sysml/parser/StatementBlock.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/100f2d60/src/main/java/org/apache/sysml/parser/StatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/StatementBlock.java b/src/main/java/org/apache/sysml/parser/StatementBlock.java
index 768f6c0..1536bbc 100644
--- a/src/main/java/org/apache/sysml/parser/StatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/StatementBlock.java
@@ -435,9 +435,9 @@ public class StatementBlock extends LiveVariableAnalysis implements ParseInfo
 				}
 				StatementBlock sblock = fstmt.getBody().get(0);
 
-				if( fcall.getParamExprs().size() < fstmt.getInputParams().size() ) {
-					sourceExpr.raiseValidateError("Wrong number of function parameters: "+
-						fcall.getParamExprs().size() + ", but " + fstmt.getInputParams().size()+" expected.");
+				if( fcall.getParamExprs().size() != fstmt.getInputParams().size() ) {
+					sourceExpr.raiseValidateError("Wrong number of function input arguments: "+
+						fcall.getParamExprs().size() + " found, but " + fstmt.getInputParams().size()+" expected.");
 				}
 
 				for (int i =0; i < fstmt.getInputParams().size(); i++) {