X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FEApply.java;h=06ff05c18bf4aec3cb60325734daa382e2544a92;hb=ae3bfd23d4b7c6bd581ad1238e25bd4f513b2643;hp=7f50d730b9f0d536fc91f6dfa439f8ccebc43fcd;hpb=0bb744e04ba4c0ac9304fa88caf8e4ba3e9bd2ed;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EApply.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EApply.java index 7f50d730b..06ff05c18 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EApply.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EApply.java @@ -249,6 +249,12 @@ public class EApply extends Expression { current.setType(mfun.returnType); if(marity < current.parameters.length) { + if (marity == 0) { + // Cannot eat away any more parameters + context.getErrorLog().log(location, "Application of non-function"); + return current; + } + Expression[] missingParameters = Arrays.copyOfRange(current.parameters, marity, current.parameters.length); functionType = mfun.returnType; current.parameters = Arrays.copyOf(current.parameters, marity);