diff --git a/IDEHelper/Compiler/BfDefBuilder.cpp b/IDEHelper/Compiler/BfDefBuilder.cpp index 5fe5d948..d74230b2 100644 --- a/IDEHelper/Compiler/BfDefBuilder.cpp +++ b/IDEHelper/Compiler/BfDefBuilder.cpp @@ -667,7 +667,7 @@ BfMethodDef* BfDefBuilder::CreateMethodDef(BfMethodDeclaration* methodDeclaratio if (paramDef->mParamDeclaration->mInitializer != NULL) hasDefault = true; - else if (hasDefault) + else if ((hasDefault) && (paramDef->mParamKind != BfParamKind_Params)) { if (!didDefaultsError) Fail("Optional parameters must appear after all required parameters", methodDef->mParams[paramIdx - 1]->mParamDeclaration); diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index c73dbaca..75c8ac93 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -5830,7 +5830,7 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu if (!isDirectPass) { - int numElements = (int)argValues.size() - argIdx; + int numElements = BF_MAX((int)argValues.size() - argIdx, 0); if (methodDef->mMethodType == BfMethodType_Extension) numElements++;