From a4abd54e7d9ff298de23a1be88e3e7a10181e4dc Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 12 Aug 2020 11:58:59 -0700 Subject: [PATCH] Fixed params in extension methods --- IDEHelper/Compiler/BfExprEvaluator.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 9de36d34..5734716e 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -5615,6 +5615,10 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu if (!isDirectPass) { + int numElements = (int)argValues.size() - argIdx; + if (methodDef->mMethodType == BfMethodType_Extension) + numElements++; + if (wantType->IsArray()) { BfArrayType* arrayType = (BfArrayType*)wantType; @@ -5623,7 +5627,6 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu int arrayClassSize = arrayType->mInstSize - expandedParamsElementType->mSize; - int numElements = (int)argValues.size() - argIdx; expandedParamsArray = BfTypedValue(mModule->AllocFromType(arrayType->GetUnderlyingType(), boxScopeData, BfIRValue(), mModule->GetConstValue(numElements), 1, BfAllocFlags_None), arrayType, false); @@ -5649,7 +5652,6 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu } else { - int numElements = (int)argValues.size() - argIdx; auto genericTypeInst = wantType->ToGenericTypeInstance(); expandedParamsElementType = genericTypeInst->mGenericTypeInfo->mTypeGenericArguments[0];