Sfoglia il codice sorgente

Fixed local method errors with GetResultString

Brian Fiete 3 anni fa
parent
commit
06fe065e2b

+ 5 - 0
IDEHelper/Compiler/BfCompiler.cpp

@@ -5283,6 +5283,11 @@ bool BfCompiler::IsAutocomplete()
 	return (mResolvePassData != NULL) && (mResolvePassData->mAutoComplete != NULL);
 }
 
+bool BfCompiler::IsDataResolvePass()
+{
+	return (mResolvePassData != NULL) && (mResolvePassData->mResolveType == BfResolveType_GetResultString);
+}
+
 BfAutoComplete* BfCompiler::GetAutoComplete()
 {
 	if (mResolvePassData != NULL)

+ 1 - 0
IDEHelper/Compiler/BfCompiler.h

@@ -483,6 +483,7 @@ public:
 	void ClearBuildCache();
 	int GetDynCastVDataCount();
 	bool IsAutocomplete();
+	bool IsDataResolvePass();
 	BfAutoComplete* GetAutoComplete();
 	bool IsHotCompile();
 	bool IsSkippingExtraResolveChecks();

+ 2 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -21427,7 +21427,8 @@ BfModuleMethodInstance BfModule::GetLocalMethodInstance(BfLocalMethod* localMeth
 	// Since we handle errors & warnings in the capture phase, we don't need to process any local methods for resolve-only (unless we're doing a mDbgVerifyCodeGen)
 	if ((!localMethod->mDeclOnly) && (!methodInstance->IsOrInUnspecializedVariation()) &&
 		(methodDef->mMethodType != BfMethodType_Mixin) &&
-		((!mWantsIRIgnoreWrites) || (!localMethod->mDidBodyErrorPass)))
+		((!mWantsIRIgnoreWrites) || (!localMethod->mDidBodyErrorPass)) &&
+		(!mCompiler->IsDataResolvePass()))
 	{
 		BP_ZONE("BfDeferredLocalMethod:create");