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 <[email protected]>
Authored: Thu Aug 24 16:50:11 2017 -0700
Committer: Deron Eriksson <[email protected]>
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++) {

Reply via email to