diff --git a/IDEHelper/Compiler/BfDefBuilder.cpp b/IDEHelper/Compiler/BfDefBuilder.cpp index 11d8a45c..3dd96024 100644 --- a/IDEHelper/Compiler/BfDefBuilder.cpp +++ b/IDEHelper/Compiler/BfDefBuilder.cpp @@ -822,7 +822,12 @@ void BfDefBuilder::ParseAttributes(BfAttributeDirective* attributes, BfMethodDef else if (typeRefName == "CVarArgs") methodDef->mCallingConvention = BfCallingConvention_CVarArgs; else if (typeRefName == "Inline") - methodDef->mAlwaysInline = true; + { + if (methodDef->mIsExtern) + Fail("Extern methods cannot be inline", attributes->mAttributeTypeRef); + else + methodDef->mAlwaysInline = true; + } else if (typeRefName == "AllowAppend") { methodDef->mHasAppend = true; diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 7861448d..99bfd563 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -4124,7 +4124,7 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar mModule->AddDependency(curCheckType, mModule->mCurTypeInstance, BfDependencyMap::DependencyFlag_ConstEvalConstField); if ((mModule->mContext->mCurTypeState != NULL) && (mModule->mContext->mCurTypeState->mCurFieldDef != NULL)) { - // If we're initializing another const field then + // If we're initializing another const field then also set it as having const eval auto resolvingFieldInstance = &mModule->mContext->mCurTypeState->mTypeInstance->mFieldInstances[mModule->mContext->mCurTypeState->mCurFieldDef->mIdx]; if (resolvingFieldInstance->GetFieldDef()->mIsConst) resolvingFieldInstance->mHadConstEval = true;