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

Fixed EvaluateWithNewScope in const eval

This commit is contained in:
Brian Fiete 2021-10-28 09:33:11 -07:00
parent 3fef480737
commit e5e11d52d4

View file

@ -8172,11 +8172,15 @@ BF_NOINLINE void BfModule::EvaluateWithNewScope(BfExprEvaluator& exprEvaluator,
BfScopeData newScope; BfScopeData newScope;
newScope.mOuterIsConditional = true; newScope.mOuterIsConditional = true;
newScope.mAllowTargeting = false; newScope.mAllowTargeting = false;
mCurMethodState->AddScope(&newScope); if (mCurMethodState != NULL)
NewScopeState(true, false); {
mCurMethodState->AddScope(&newScope);
NewScopeState(true, false);
}
exprEvaluator.mBfEvalExprFlags = (BfEvalExprFlags)(exprEvaluator.mBfEvalExprFlags | flags); exprEvaluator.mBfEvalExprFlags = (BfEvalExprFlags)(exprEvaluator.mBfEvalExprFlags | flags);
exprEvaluator.Evaluate(expr, (flags & BfEvalExprFlags_PropogateNullConditional) != 0, (flags & BfEvalExprFlags_IgnoreNullConditional) != 0, (flags & BfEvalExprFlags_AllowSplat) != 0); exprEvaluator.Evaluate(expr, (flags & BfEvalExprFlags_PropogateNullConditional) != 0, (flags & BfEvalExprFlags_IgnoreNullConditional) != 0, (flags & BfEvalExprFlags_AllowSplat) != 0);
RestoreScopeState(); if (mCurMethodState != NULL)
RestoreScopeState();
} }
BfTypedValue BfModule::CreateValueFromExpression(BfExprEvaluator& exprEvaluator, BfExpression* expr, BfType* wantTypeRef, BfEvalExprFlags flags, BfType** outOrigType) BfTypedValue BfModule::CreateValueFromExpression(BfExprEvaluator& exprEvaluator, BfExpression* expr, BfType* wantTypeRef, BfEvalExprFlags flags, BfType** outOrigType)