1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Fixed params expression with ref values

This commit is contained in:
Brian Fiete 2020-05-19 09:42:11 -07:00
parent 4fe6bcaa86
commit e82daf74d4
9 changed files with 29 additions and 45 deletions

View file

@ -4134,12 +4134,10 @@ void BfExprEvaluator::ResolveArgValues(BfResolvedArgs& resolvedArgs, BfResolveAr
{
BfResolvedArg compositeResolvedArg;
auto compositeLocalVar = methodState->mLocals[localVar->mLocalVarIdx + compositeIdx + 1];
auto argValue = exprEvaluator.LoadLocal(compositeLocalVar);
auto argValue = exprEvaluator.LoadLocal(compositeLocalVar, true);
if (argValue)
{
if (argValue.mType->IsRef())
argValue.mKind = BfTypedValueKind_Value;
else if (!argValue.mType->IsStruct())
if (!argValue.mType->IsStruct())
argValue = mModule->LoadValue(argValue, NULL, exprEvaluator.mIsVolatileReference);
}
resolvedArg.mTypedValue = argValue;
@ -8052,11 +8050,6 @@ void BfExprEvaluator::Visit(BfCollectionInitializerExpression* arrayInitExpr)
mModule->Fail("Collection initializer not usable here", arrayInitExpr);
}
void BfExprEvaluator::Visit(BfParamsExpression* paramsExpr)
{
mModule->Fail("Params expression is only usable as a call parameter", paramsExpr);
}
void BfExprEvaluator::Visit(BfTypeOfExpression* typeOfExpr)
{
auto typeType = mModule->ResolveTypeDef(mModule->mCompiler->mTypeTypeDef);