From 59d4e258d5dd71a0cbcfd43cc223ef75fdb71f02 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 21 Feb 2021 06:25:27 -0800 Subject: [PATCH] Fixed prop binding issue with direct-autoprop optimization interference --- IDEHelper/Compiler/BfExprEvaluator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 4a782da5..4f00c9d4 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -4635,6 +4635,8 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar bool doAccessCheck = true; + if ((flags & BfLookupFieldFlag_BindOnly) != 0) + doAccessCheck = false; if ((mModule->mAttributeState != NULL) && (mModule->mAttributeState->mCustomAttributes != NULL) && (mModule->mAttributeState->mCustomAttributes->Contains(mModule->mCompiler->mDisableObjectAccessChecksAttributeTypeDef))) doAccessCheck = false; @@ -4861,7 +4863,7 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar } // Check for direct auto-property access - if (startCheckType == mModule->mCurTypeInstance) + if ((startCheckType == mModule->mCurTypeInstance) && ((flags & BfLookupFieldFlag_BindOnly) == 0)) { if (auto propertyDeclaration = BfNodeDynCast(mPropDef->mFieldDeclaration)) {