mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 14:24:10 +02:00
Fix for call with implicit captured 'var' type
This commit is contained in:
parent
f273407f97
commit
b9f84d328e
1 changed files with 9 additions and 3 deletions
|
@ -5503,8 +5503,13 @@ void BfExprEvaluator::PushArg(BfTypedValue argVal, SizedArrayImpl<BfIRValue>& ir
|
||||||
{
|
{
|
||||||
MakeBaseConcrete(argVal);
|
MakeBaseConcrete(argVal);
|
||||||
|
|
||||||
|
if (argVal.mType->IsVar())
|
||||||
|
{
|
||||||
|
argVal = mModule->GetDefaultTypedValue(mModule->mContext->mBfObjectType);
|
||||||
|
}
|
||||||
|
|
||||||
if (argVal.mType->IsValuelessType())
|
if (argVal.mType->IsValuelessType())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool wantSplat = false;
|
bool wantSplat = false;
|
||||||
if ((argVal.mType->IsSplattable()) && (!disableSplat))
|
if ((argVal.mType->IsSplattable()) && (!disableSplat))
|
||||||
|
@ -7895,12 +7900,13 @@ BfTypedValue BfExprEvaluator::MatchMethod(BfAstNode* targetSrc, BfMethodBoundExp
|
||||||
mModule->Fail(StrFormat("Method '%s' does not exist", methodName.c_str()), targetSrc);
|
mModule->Fail(StrFormat("Method '%s' does not exist", methodName.c_str()), targetSrc);
|
||||||
return BfTypedValue();
|
return BfTypedValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((prevBindResult.mPrevVal != NULL) && (methodMatcher.mMethodCheckCount > 1))
|
if ((prevBindResult.mPrevVal != NULL) && (methodMatcher.mMethodCheckCount > 1))
|
||||||
prevBindResult.mPrevVal->mCheckedMultipleMethods = true;
|
prevBindResult.mPrevVal->mCheckedMultipleMethods = true;
|
||||||
|
|
||||||
BfModuleMethodInstance moduleMethodInstance = GetSelectedMethod(targetSrc, curTypeInst, methodDef, methodMatcher);
|
BfModuleMethodInstance moduleMethodInstance = GetSelectedMethod(targetSrc, curTypeInst, methodDef, methodMatcher);
|
||||||
|
|
||||||
if ((mModule->mCurMethodInstance != NULL) && (mModule->mCurMethodInstance->mIsUnspecialized))
|
if ((mModule->mCurMethodInstance != NULL) && (mModule->mCurMethodInstance->mIsUnspecialized))
|
||||||
{
|
{
|
||||||
if (methodMatcher.mHasVarArguments)
|
if (methodMatcher.mHasVarArguments)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue