From 1be37e6f24c734d8ba48e3b31bd5ef2bd90a8b86 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 2 Jan 2021 09:08:25 -0800 Subject: [PATCH] Deprecated DeleteAndClearItems --- BeefLibs/corlib/src/System.bf | 9 +++++++++ IDE/src/IDEApp.bf | 4 ++-- IDE/src/Project.bf | 2 +- IDE/src/ScriptManager.bf | 2 +- IDE/src/Settings.bf | 2 +- IDE/src/ui/NavigationBar.bf | 2 +- IDE/src/ui/SourceViewPanel.bf | 2 +- IDEHelper/Compiler/BfExprEvaluator.cpp | 1 + 8 files changed, 17 insertions(+), 7 deletions(-) diff --git a/BeefLibs/corlib/src/System.bf b/BeefLibs/corlib/src/System.bf index f8bf4ba1..65f66276 100644 --- a/BeefLibs/corlib/src/System.bf +++ b/BeefLibs/corlib/src/System.bf @@ -152,6 +152,8 @@ static } } + [NoShow] + [Warn("This mixin has been replaced by ClearAndDeleteItems")] public static mixin DeleteAndClearItems(var container) { for (var value in container) @@ -159,6 +161,13 @@ static container.Clear(); } + public static mixin ClearAndDeleteItems(var container) + { + for (var value in container) + delete value; + container.Clear(); + } + public static void ClearAndDeleteItems(List container) where T : var { for (var value in container) diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index a0ea597f..d3af5706 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -1195,7 +1195,7 @@ namespace IDE } var aDialog = QuerySaveFiles(changedList); - DeleteAndClearItems!(changedList); + ClearAndDeleteItems(changedList); aDialog.mDefaultButton = aDialog.AddButton("Save", new (evt) => { @@ -2977,7 +2977,7 @@ namespace IDE using (data.Open("MainDockingFrame")) DeserializeDockingFrame(data, mDockingFrame); - DeleteAndClearItems!(mRecentlyDisplayedFiles); + ClearAndDeleteItems(mRecentlyDisplayedFiles); for (data.Enumerate("RecentFilesList")) { String relPath = scope String(); diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index efda4d9e..da9f1791 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -1938,7 +1938,7 @@ namespace IDE ReadStrings("EnvironmentVars", options.mDebugOptions.mEnvironmentVars); // BeefOptions - DeleteAndClearItems!(options.mBeefOptions.mPreprocessorMacros); + ClearAndDeleteItems(options.mBeefOptions.mPreprocessorMacros); if (data.Contains("PreprocessorMacros")) { for (var _preproc in data.Enumerate("PreprocessorMacros")) diff --git a/IDE/src/ScriptManager.bf b/IDE/src/ScriptManager.bf index 6d191e8e..5912981b 100644 --- a/IDE/src/ScriptManager.bf +++ b/IDE/src/ScriptManager.bf @@ -220,7 +220,7 @@ namespace IDE public void Clear() { - DeleteAndClearItems!(mCmdList); + ClearAndDeleteItems(mCmdList); mFailed = false; mCurCmd = null; } diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index f4342258..34c55dce 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -924,7 +924,7 @@ namespace IDE { HashSet usedCommands = scope .(); List allocatedStrs = scope .(); - defer { DeleteAndClearItems!(allocatedStrs); } + defer { ClearAndDeleteItems(allocatedStrs); } List newEntries = new .(); for (let cmdStr in sd.Enumerate()) diff --git a/IDE/src/ui/NavigationBar.bf b/IDE/src/ui/NavigationBar.bf index cc54cc66..b5a737a2 100644 --- a/IDE/src/ui/NavigationBar.bf +++ b/IDE/src/ui/NavigationBar.bf @@ -87,7 +87,7 @@ namespace IDE.ui void GetEntries() { - DeleteAndClearItems!(mEntries); + ClearAndDeleteItems(mEntries); ResolveParams resolveParams = scope ResolveParams(); mSourceViewPanel.Classify(ResolveType.GetNavigationData, resolveParams); if (resolveParams.mNavigationData != null) diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 641ab51d..653be32c 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -6390,7 +6390,7 @@ namespace IDE.ui } else { - DeleteAndClearItems!(mErrorList); + ClearAndDeleteItems(mErrorList); } int32 errorCount = processingPassInstance.GetErrorCount(); diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 8f6f7d10..84c29ce2 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -14417,6 +14417,7 @@ void BfExprEvaluator::InjectMixin(BfAstNode* targetSrc, BfTypedValue target, boo return; } auto methodInstance = moduleMethodInstance.mMethodInstance; + PerformCallChecks(methodInstance, targetSrc); for (int checkGenericIdx = 0; checkGenericIdx < (int)methodMatcher.mBestMethodGenericArguments.size(); checkGenericIdx++) {