diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 626d2850..4c00c14c 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -5603,9 +5603,12 @@ BfTypedValue BfExprEvaluator::MatchConstructor(BfAstNode* targetSrc, BfMethodBou { if (callCtorBodyOnly) { - // We're calling the base class's ctor from a derived class - if (checkProt <= BfProtection_Private) - continue; + if (curTypeDef != targetType->mTypeDef) + { + // We're calling the base class's ctor from a derived class + if (checkProt <= BfProtection_Private) + continue; + } } else { diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 02f52cfe..022acb91 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -14219,11 +14219,6 @@ void BfModule::EmitCtorBody(bool& skipBody) } } - if (mCurTypeInstance->IsDelegate()) - { - NOP; - } - BfAstNode* baseCtorNode = NULL; if ((ctorDeclaration != NULL) && (ctorDeclaration->mInitializer != NULL) && (ctorDeclaration->mInitializer->mTarget != NULL)) baseCtorNode = ctorDeclaration->mInitializer->mTarget;