From c7be96d7a120245c69410a623d139c1c65ed92e2 Mon Sep 17 00:00:00 2001 From: disarray2077 <86157825+disarray2077@users.noreply.github.com> Date: Tue, 14 May 2024 16:24:19 -0300 Subject: [PATCH] Consider 'params' for DelegateBind method matching --- IDEHelper/Compiler/BfExprEvaluator.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 989e9720..f3cdad84 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -6019,6 +6019,8 @@ void BfExprEvaluator::ResolveArgValues(BfResolvedArgs& resolvedArgs, BfResolveAr { BfResolvedArg resolvedArg; resolvedArg.mTypedValue = typedValueExpr->mTypedValue; + if (resolvedArg.mTypedValue.IsParams()) + resolvedArg.mArgFlags = BfArgFlag_ParamsExpr; resolvedArg.mExpression = typedValueExpr->mRefNode; resolvedArgs.mResolvedArgs.push_back(resolvedArg); continue; @@ -13393,6 +13395,8 @@ void BfExprEvaluator::Visit(BfDelegateBindExpression* delegateBindExpr) auto typedValueExpr = &typedValueExprs[i]; typedValueExpr->mTypedValue.mValue = BfIRValue(BfIRValueFlags_Value, -1); typedValueExpr->mTypedValue.mType = methodInstance->GetParamType(i + paramOffset); + if (methodInstance->GetParamKind(i + paramOffset) == BfParamKind_Params) + typedValueExpr->mTypedValue.mKind = BfTypedValueKind_Params; typedValueExpr->mRefNode = NULL; args[i] = typedValueExpr; }