From b52db47d55817b13636ebc5a19e0722d6530791a Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 8 May 2020 07:10:35 -0700 Subject: [PATCH] Got rid of Action/Func --- .../Beefy2D/src/theme/dark/DarkComboBox.bf | 2 +- .../Beefy2D/src/theme/dark/DarkListView.bf | 4 +-- .../Beefy2D/src/theme/dark/DarkSmartEdit.bf | 2 +- .../Beefy2D/src/theme/dark/DarkTabbedView.bf | 2 +- BeefLibs/Beefy2D/src/utils/UndoManager.bf | 2 +- BeefLibs/Beefy2D/src/widgets/Composition.bf | 6 ++-- BeefLibs/Beefy2D/src/widgets/DockingFrame.bf | 2 +- BeefLibs/Beefy2D/src/widgets/ListView.bf | 6 ++-- BeefLibs/Beefy2D/src/widgets/Menu.bf | 2 +- BeefLibs/Beefy2D/src/widgets/Scrollbar.bf | 2 +- BeefLibs/Beefy2D/src/widgets/TabbedView.bf | 6 ++-- BeefLibs/Beefy2D/src/widgets/Widget.bf | 2 +- BeefLibs/Beefy2D/src/widgets/WidgetWindow.bf | 2 +- BeefLibs/corlib/src/Action.bf | 10 ------ BeefLibs/corlib/src/Collections/IComparer.bf | 4 --- BeefLibs/corlib/src/Delegate.bf | 2 ++ BeefLibs/corlib/src/Func.bf | 7 ---- BeefLibs/corlib/src/IComparable.bf | 2 ++ BeefLibs/corlib/src/IO/Stream.bf | 2 +- BeefLibs/corlib/src/Threading/Tasks/Future.bf | 10 +++--- BeefLibs/corlib/src/Threading/Tasks/Task.bf | 4 +-- BeefTools/BeefPerf/src/BPApp.bf | 4 +-- BeefTools/BeefPerf/src/PerfView.bf | 2 +- IDE/BeefProj.toml | 4 +-- IDE/mintest/minlib/src/System/Object.bf | 6 ---- IDE/mintest/src/main3.bf | 36 +++++++++++++++---- IDE/src/Compiler/BfCompiler.bf | 10 ++++-- IDE/src/FileWatcher.bf | 2 +- IDE/src/IDEApp.bf | 17 ++++----- IDE/src/Project.bf | 2 +- IDE/src/Workspace.bf | 2 +- IDE/src/ui/BreakpointPanel.bf | 4 +-- IDE/src/ui/MemoryPanel.bf | 2 +- IDE/src/ui/OutputWidget.bf | 2 +- IDE/src/ui/SourceEditWidgetContent.bf | 4 +-- IDE/src/ui/SourceViewPanel.bf | 2 +- IDE/src/ui/WatchPanel.bf | 2 +- 37 files changed, 94 insertions(+), 88 deletions(-) delete mode 100644 BeefLibs/corlib/src/Action.bf delete mode 100644 BeefLibs/corlib/src/Collections/IComparer.bf delete mode 100644 BeefLibs/corlib/src/Func.bf diff --git a/BeefLibs/Beefy2D/src/theme/dark/DarkComboBox.bf b/BeefLibs/Beefy2D/src/theme/dark/DarkComboBox.bf index a7a0d24a..ea5a8271 100644 --- a/BeefLibs/Beefy2D/src/theme/dark/DarkComboBox.bf +++ b/BeefLibs/Beefy2D/src/theme/dark/DarkComboBox.bf @@ -53,7 +53,7 @@ namespace Beefy.theme.dark public FontAlign mLabelAlign = FontAlign.Centered; public FrameKind mFrameKind = .OnWindow; - public Event> mPopulateMenuAction ~ _.Dispose(); + public Event mPopulateMenuAction ~ _.Dispose(); public CBMenuWidget mCurMenuWidget; bool mJustClosed; public uint32 mBkgColor; diff --git a/BeefLibs/Beefy2D/src/theme/dark/DarkListView.bf b/BeefLibs/Beefy2D/src/theme/dark/DarkListView.bf index d00143ab..0be9239f 100644 --- a/BeefLibs/Beefy2D/src/theme/dark/DarkListView.bf +++ b/BeefLibs/Beefy2D/src/theme/dark/DarkListView.bf @@ -842,8 +842,8 @@ namespace Beefy.theme.dark public SortType mSortType = SortType() ~ { mSortType.mColumn = -1; }; public Insets mInsets ~ delete _; - public Event> mOnDragUpdate ~ _.Dispose(); - public Event> mOnDragEnd ~ _.Dispose(); + public Event mOnDragUpdate ~ _.Dispose(); + public Event mOnDragEnd ~ _.Dispose(); public this() { diff --git a/BeefLibs/Beefy2D/src/theme/dark/DarkSmartEdit.bf b/BeefLibs/Beefy2D/src/theme/dark/DarkSmartEdit.bf index 7889227a..22db6fd7 100644 --- a/BeefLibs/Beefy2D/src/theme/dark/DarkSmartEdit.bf +++ b/BeefLibs/Beefy2D/src/theme/dark/DarkSmartEdit.bf @@ -14,7 +14,7 @@ namespace Beefy.theme.dark public bool mAllowEdit = true; public Object mValue; public List mMoveWidgets; - public Action mValueChangedAction; + public delegate void(DarkSmartEdit) mValueChangedAction; bool mCancelingEdit; float mMouseDownX; diff --git a/BeefLibs/Beefy2D/src/theme/dark/DarkTabbedView.bf b/BeefLibs/Beefy2D/src/theme/dark/DarkTabbedView.bf index e4382bd7..efd8b3ff 100644 --- a/BeefLibs/Beefy2D/src/theme/dark/DarkTabbedView.bf +++ b/BeefLibs/Beefy2D/src/theme/dark/DarkTabbedView.bf @@ -397,7 +397,7 @@ namespace Beefy.theme.dark return tabCount; } - public override void WithTabs(Action func) + public override void WithTabs(delegate void(TabbedView.TabButton) func) { for (var tab in mTabs) func(tab); diff --git a/BeefLibs/Beefy2D/src/utils/UndoManager.bf b/BeefLibs/Beefy2D/src/utils/UndoManager.bf index a3f9cb40..fdeb8b89 100644 --- a/BeefLibs/Beefy2D/src/utils/UndoManager.bf +++ b/BeefLibs/Beefy2D/src/utils/UndoManager.bf @@ -111,7 +111,7 @@ namespace Beefy.utils Clear(); } - public void WithActions(Action func) + public void WithActions(delegate void(UndoAction) func) { for (var action in mUndoList) func(action); diff --git a/BeefLibs/Beefy2D/src/widgets/Composition.bf b/BeefLibs/Beefy2D/src/widgets/Composition.bf index 2a67b588..0916c22d 100644 --- a/BeefLibs/Beefy2D/src/widgets/Composition.bf +++ b/BeefLibs/Beefy2D/src/widgets/Composition.bf @@ -376,7 +376,7 @@ namespace Beefy.widgets } protected void SerializeTimeline(StructuredData data, TimelineData timelineData, String name, - String[] componentNames, Action[] writeActions, T theDefault) where T : IEquatable + String[] componentNames, Delegate[] writeActions, T theDefault) where T : IEquatable { /*if ((timelineData.mEntries != null) && (timelineData.mEntries.Count > 0)) { @@ -433,7 +433,7 @@ namespace Beefy.widgets data.Add("ResId", resIdStr); } - SerializeTimeline(data, mTimelineAnchor, "Anchor", + /*SerializeTimeline(data, mTimelineAnchor, "Anchor", scope String[] { "X", "Y" }, scope Action[] { scope => CompositionPos.WriteX, scope => CompositionPos.WriteY }, CompositionPos(0, 0)); @@ -451,7 +451,7 @@ namespace Beefy.widgets SerializeTimeline(data, mTimelineRot, "Rotation", scope String[] { "Angle" }, null, - 0.0f); + 0.0f);*/ } public void RebuildChildIndices() diff --git a/BeefLibs/Beefy2D/src/widgets/DockingFrame.bf b/BeefLibs/Beefy2D/src/widgets/DockingFrame.bf index 83fc3246..cc024ef3 100644 --- a/BeefLibs/Beefy2D/src/widgets/DockingFrame.bf +++ b/BeefLibs/Beefy2D/src/widgets/DockingFrame.bf @@ -213,7 +213,7 @@ namespace Beefy.widgets return parentFrame; } - public void WithAllDockedWidgets(Action func) + public void WithAllDockedWidgets(delegate void(DockedWidget) func) { for (var dockedWidget in mDockedWidgets) { diff --git a/BeefLibs/Beefy2D/src/widgets/ListView.bf b/BeefLibs/Beefy2D/src/widgets/ListView.bf index 6bdfd05d..6b985ca8 100644 --- a/BeefLibs/Beefy2D/src/widgets/ListView.bf +++ b/BeefLibs/Beefy2D/src/widgets/ListView.bf @@ -137,7 +137,7 @@ namespace Beefy.widgets } } - public void WithItems(Action func) + public void WithItems(delegate void(ListViewItem) func) { if (mChildItems != null) { @@ -149,7 +149,7 @@ namespace Beefy.widgets } } - public void WithSelectedItems(Action func, bool skipSelectedChildrenOnSelectedItems = false, bool skipClosed = false) + public void WithSelectedItems(delegate void(ListViewItem) func, bool skipSelectedChildrenOnSelectedItems = false, bool skipClosed = false) { bool selfSelected = Selected; if (selfSelected) @@ -684,7 +684,7 @@ namespace Beefy.widgets protected ListViewItem mRoot; public bool mListSizeDirty; public float mHeaderHeight; - public Event> mOnFocusChanged ~ _.Dispose(); + public Event mOnFocusChanged ~ _.Dispose(); public float mBottomInset = 8; public bool mAllowMultiSelect = true; public Event mOnItemMouseDown ~ _.Dispose(); diff --git a/BeefLibs/Beefy2D/src/widgets/Menu.bf b/BeefLibs/Beefy2D/src/widgets/Menu.bf index 06047529..0d43b0c0 100644 --- a/BeefLibs/Beefy2D/src/widgets/Menu.bf +++ b/BeefLibs/Beefy2D/src/widgets/Menu.bf @@ -110,7 +110,7 @@ namespace Beefy.widgets public float mMaxContainerWidth = Int32.MaxValue; public Insets mPopupInsets = new Insets() ~ delete _; public bool mHasClosed; - public Event> mOnSelectionChanged ~ _.Dispose(); + public Event mOnSelectionChanged ~ _.Dispose(); public bool mWasInitialized; public this(Menu menu) diff --git a/BeefLibs/Beefy2D/src/widgets/Scrollbar.bf b/BeefLibs/Beefy2D/src/widgets/Scrollbar.bf index 906ce83e..83334bd5 100644 --- a/BeefLibs/Beefy2D/src/widgets/Scrollbar.bf +++ b/BeefLibs/Beefy2D/src/widgets/Scrollbar.bf @@ -14,7 +14,7 @@ namespace Beefy.widgets { public Scrollbar mScrollbar; public DragHelper mDraggableHelper ~ delete _; - public Event> mOnDrag ~ _.Dispose(); + public Event mOnDrag ~ _.Dispose(); public this() { diff --git a/BeefLibs/Beefy2D/src/widgets/TabbedView.bf b/BeefLibs/Beefy2D/src/widgets/TabbedView.bf index 122a49e3..104c80be 100644 --- a/BeefLibs/Beefy2D/src/widgets/TabbedView.bf +++ b/BeefLibs/Beefy2D/src/widgets/TabbedView.bf @@ -346,7 +346,7 @@ namespace Beefy.widgets int32 mRefCount = 1; public Event mOpenNewWindowDelegate ~ _.Dispose(); - public Event> mTabbedViewClosed ~ _.Dispose(); + public Event mTabbedViewClosed ~ _.Dispose(); public SharedData Ref() { @@ -363,7 +363,7 @@ namespace Beefy.widgets public delegate void OpenNewWindowDelegate(TabbedView tabbedView, WidgetWindow newWindow); - public Action mPopulateMenuEvent; + public delegate void(Menu) mPopulateMenuEvent; public float mTabHeight; public float mTabAreaWidth; public bool mNeedResizeTabs; @@ -417,7 +417,7 @@ namespace Beefy.widgets return mTabs.Count; } - public virtual void WithTabs(Action func) + public virtual void WithTabs(delegate void(TabbedView.TabButton) func) { for (var tab in mTabs) func(tab); diff --git a/BeefLibs/Beefy2D/src/widgets/Widget.bf b/BeefLibs/Beefy2D/src/widgets/Widget.bf index 476a1324..a83decf5 100644 --- a/BeefLibs/Beefy2D/src/widgets/Widget.bf +++ b/BeefLibs/Beefy2D/src/widgets/Widget.bf @@ -80,7 +80,7 @@ namespace Beefy.widgets public Event mOnRemovedFromParent ~ _.Dispose(); public Event mOnAddedToParent ~ _.Dispose(); public Event mOnKeyDown ~ _.Dispose(); - public Event> mOnDeleted ~ _.Dispose(); + public Event mOnDeleted ~ _.Dispose(); public Matrix Transform { diff --git a/BeefLibs/Beefy2D/src/widgets/WidgetWindow.bf b/BeefLibs/Beefy2D/src/widgets/WidgetWindow.bf index a4525f60..f4dd2fd7 100644 --- a/BeefLibs/Beefy2D/src/widgets/WidgetWindow.bf +++ b/BeefLibs/Beefy2D/src/widgets/WidgetWindow.bf @@ -29,7 +29,7 @@ namespace Beefy.widgets public Event mOnMouseWheel ~ _.Dispose(); public Event mOnMenuItemSelected ~ _.Dispose(); public Event mOnWindowKeyDown ~ _.Dispose(); - public Event> mOnHitTest ~ _.Dispose(); + public Event mOnHitTest ~ _.Dispose(); public static Event sOnMouseLeftWindow ~ _.Dispose(); public static Event sOnWindowLostFocus ~ _.Dispose(); diff --git a/BeefLibs/corlib/src/Action.bf b/BeefLibs/corlib/src/Action.bf deleted file mode 100644 index 68d8d477..00000000 --- a/BeefLibs/corlib/src/Action.bf +++ /dev/null @@ -1,10 +0,0 @@ -namespace System -{ - public delegate void Action(); - public delegate void Action(T obj); - public delegate void Action(T1 p1, T2 p2); - public delegate void Action(T1 p1, T2 p2, T3 p3); - public delegate void Action(T1 p1, T2 p2, T3 p3, T4 p4); - - public delegate int Comparison(T lhs, T rhs); -} diff --git a/BeefLibs/corlib/src/Collections/IComparer.bf b/BeefLibs/corlib/src/Collections/IComparer.bf deleted file mode 100644 index 499aa2b9..00000000 --- a/BeefLibs/corlib/src/Collections/IComparer.bf +++ /dev/null @@ -1,4 +0,0 @@ -namespace System.Collections -{ - -} diff --git a/BeefLibs/corlib/src/Delegate.bf b/BeefLibs/corlib/src/Delegate.bf index f631976f..7b016fe9 100644 --- a/BeefLibs/corlib/src/Delegate.bf +++ b/BeefLibs/corlib/src/Delegate.bf @@ -39,6 +39,8 @@ namespace System } } + delegate void Action(); + struct Function : int { diff --git a/BeefLibs/corlib/src/Func.bf b/BeefLibs/corlib/src/Func.bf deleted file mode 100644 index 7b1e7a50..00000000 --- a/BeefLibs/corlib/src/Func.bf +++ /dev/null @@ -1,7 +0,0 @@ -namespace System -{ - delegate TResult Func(); - delegate TResult Func(T1 p1); - delegate TResult Func(T1 p1, T2 p2); - delegate TResult Func(T1 p1, T2 p2, T3 p3); -} diff --git a/BeefLibs/corlib/src/IComparable.bf b/BeefLibs/corlib/src/IComparable.bf index 2c21f4e3..50709105 100644 --- a/BeefLibs/corlib/src/IComparable.bf +++ b/BeefLibs/corlib/src/IComparable.bf @@ -72,4 +72,6 @@ namespace System { } + + public delegate int Comparison(T lhs, T rhs); } diff --git a/BeefLibs/corlib/src/IO/Stream.bf b/BeefLibs/corlib/src/IO/Stream.bf index ae8c020f..dd989abf 100644 --- a/BeefLibs/corlib/src/IO/Stream.bf +++ b/BeefLibs/corlib/src/IO/Stream.bf @@ -195,7 +195,7 @@ namespace System.IO public this( bool isRead, - Func func, Object state, + delegate int(Object) func, Object state, Stream stream, uint8[] buffer, int offset, int count, AsyncCallback callback) : base(func, state, CancellationToken.None, TaskCreationOptions.DenyChildAttach) { diff --git a/BeefLibs/corlib/src/Threading/Tasks/Future.bf b/BeefLibs/corlib/src/Threading/Tasks/Future.bf index 54ffcc32..3484f44e 100644 --- a/BeefLibs/corlib/src/Threading/Tasks/Future.bf +++ b/BeefLibs/corlib/src/Threading/Tasks/Future.bf @@ -32,7 +32,7 @@ namespace System.Threading.Tasks } - public this(Func func, Object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions) + public this(delegate TResult(Object) func, Object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions) : this(func, state, Task.[Friend]InternalCurrentIfAttached(creationOptions), cancellationToken, creationOptions, InternalTaskOptions.None, null) { @@ -40,7 +40,7 @@ namespace System.Threading.Tasks //PossiblyCaptureContext(ref stackMark); } - this(Func valueSelector, Task parent, CancellationToken cancellationToken, + this(delegate TResult() valueSelector, Task parent, CancellationToken cancellationToken, TaskCreationOptions creationOptions, InternalTaskOptions internalOptions, TaskScheduler scheduler) : base(valueSelector, null, parent, cancellationToken, creationOptions, internalOptions, scheduler) { @@ -103,9 +103,9 @@ namespace System.Threading.Tasks return m_result; } - List>> mContinuations = new List>>() ~ delete _; + List)> mContinuations = new .() ~ delete _; - public Task ContinueWith(Action> continuationAction) + public Task ContinueWith(delegate void(Task) continuationAction) { bool callDirectly = false; using (mMonitor.Enter()) @@ -130,7 +130,7 @@ namespace System.Threading.Tasks public void Notify(bool allowDelete = true) { - var continueList = scope List>>(16); + var continueList = scope List)>(16); using (mMonitor.Enter()) { mHasCompleted = true; diff --git a/BeefLibs/corlib/src/Threading/Tasks/Task.bf b/BeefLibs/corlib/src/Threading/Tasks/Task.bf index d84fe8cd..f0c7d91f 100644 --- a/BeefLibs/corlib/src/Threading/Tasks/Task.bf +++ b/BeefLibs/corlib/src/Threading/Tasks/Task.bf @@ -255,7 +255,7 @@ namespace System.Threading.Tasks } - public this(Action action, Object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions) + public this(delegate void(Object) action, Object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions) : this(action, state, Task.InternalCurrentIfAttached(creationOptions), cancellationToken, creationOptions, InternalTaskOptions.None, null) { //StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; @@ -1121,7 +1121,7 @@ namespace System.Threading.Tasks action(); return; } - var actionWithState = m_action as Action; + var actionWithState = m_action as delegate void(Object); if (actionWithState != null) { actionWithState(m_stateObject); diff --git a/BeefTools/BeefPerf/src/BPApp.bf b/BeefTools/BeefPerf/src/BPApp.bf index 82a4c5f3..13705082 100644 --- a/BeefTools/BeefPerf/src/BPApp.bf +++ b/BeefTools/BeefPerf/src/BPApp.bf @@ -835,7 +835,7 @@ namespace BeefPerf OpenedNew } - public void WithDocumentTabbedViews(Action func) + public void WithDocumentTabbedViews(delegate void(DarkTabbedView) func) { for (int32 windowIdx = 0; windowIdx < mWindows.Count; windowIdx++) { @@ -860,7 +860,7 @@ namespace BeefPerf } } - public void WithTabs(Action func) + public void WithTabs(delegate void(TabbedView.TabButton) func) { WithDocumentTabbedViews(scope (documentTabbedView) => { diff --git a/BeefTools/BeefPerf/src/PerfView.bf b/BeefTools/BeefPerf/src/PerfView.bf index fc12f6ae..9c2cd046 100644 --- a/BeefTools/BeefPerf/src/PerfView.bf +++ b/BeefTools/BeefPerf/src/PerfView.bf @@ -1383,7 +1383,7 @@ namespace BeefPerf return dc.mSelection; } - void WithNodes(TrackNode node, Action act) + void WithNodes(TrackNode node, delegate void(TrackNode) act) { act(node); var group = node as TrackNodeGroup; diff --git a/IDE/BeefProj.toml b/IDE/BeefProj.toml index 77b6457d..176ccf26 100644 --- a/IDE/BeefProj.toml +++ b/IDE/BeefProj.toml @@ -24,7 +24,7 @@ OtherLinkFlags = "" TargetDirectory = "$(WorkspaceDir)/dist" TargetName = "BeefIDE_d" OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib" -DebugCommandArguments = "-proddir=E:\\_Beef\\TestAPp" +DebugCommandArguments = "-proddir=C:\\Beef\\IDE" DebugWorkingDirectory = "c:\\Beef" EnvironmentVars = ["_NO_DEBUG_HEAP=1"] @@ -48,7 +48,7 @@ OtherLinkFlags = "" TargetDirectory = "$(WorkspaceDir)/dist" TargetName = "BeefIDE_d2" OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib BeefySysLib64_d.lib wsock32.lib" -DebugCommandArguments = "-workspace=c:\\beef\\ide\\mintest" +DebugCommandArguments = "-workspace=C:\\Beef\\IDEHelper\\Tests" DebugWorkingDirectory = "$(ProjectDir)\\dist" EnvironmentVars = ["_NO_DEBUG_HEAP=1"] diff --git a/IDE/mintest/minlib/src/System/Object.bf b/IDE/mintest/minlib/src/System/Object.bf index 7b72737b..5bcda527 100644 --- a/IDE/mintest/minlib/src/System/Object.bf +++ b/IDE/mintest/minlib/src/System/Object.bf @@ -529,12 +529,6 @@ namespace System } } - delegate void Action(); - delegate void Action(T1 p1); - delegate void Action(T1 p1, T2 p2); - delegate TResult Func(); - delegate TResult Func(T1 p1); - delegate TResult Func(T1 p1, T2 p2); delegate int32 Comparison(T a, T b); } diff --git a/IDE/mintest/src/main3.bf b/IDE/mintest/src/main3.bf index b990ebfb..1e919a6b 100644 --- a/IDE/mintest/src/main3.bf +++ b/IDE/mintest/src/main3.bf @@ -5,26 +5,48 @@ using System.Diagnostics; using System.Threading; using System.Collections; -[Obsolete("This is old", false)] -class Bloops +struct Zoops { + public int mA = 123; + public int mB = 234; + public static implicit operator Zoops(float f) + { + Zoops val = default; + val.mA = (.)f; + val.mB = 200; + return val; + } + + public static implicit operator Zoops(float[2] f) + { + Zoops val = default; + val.mA = (.)f[0]; + val.mB = (.)f[1]; + return val; + } } struct Blurg { - [LinkName(.Empty)] - public static void Hello() + public void Foo() { + + } + + public void Zarf() + { + T Yorp(T2 val) + { + return default; + } } [CallingConvention(.Cdecl)] public static void Hey() { - Hello(); - - //int a = LinkNameAttribute(.); + } } diff --git a/IDE/src/Compiler/BfCompiler.bf b/IDE/src/Compiler/BfCompiler.bf index 3b86b3af..74f2a02c 100644 --- a/IDE/src/Compiler/BfCompiler.bf +++ b/IDE/src/Compiler/BfCompiler.bf @@ -301,6 +301,7 @@ namespace IDE.Compiler BfPassInstance passInstance = null; bool didPassInstanceAlloc = false; + bool wantsRemoveOldData = false; mBfSystem.Lock(0); @@ -488,8 +489,7 @@ namespace IDE.Compiler QueueDeferredResolveAll(); delete resolvePassData; - mBfSystem.RemoveOldParsers(); - mBfSystem.RemoveOldData(); + wantsRemoveOldData = true; passKind = .Classify; // End after resolveAll @@ -520,6 +520,12 @@ namespace IDE.Compiler gApp.mErrorsPanel.ProcessPassInstance(passInstance, passKind); delete passInstance; } + + if (wantsRemoveOldData) + { + mBfSystem.RemoveOldParsers(); + mBfSystem.RemoveOldData(); + } } void HandleOptions(BfProject hotBfProject, int32 hotIdx) diff --git a/IDE/src/FileWatcher.bf b/IDE/src/FileWatcher.bf index b5a9897c..6a29dd96 100644 --- a/IDE/src/FileWatcher.bf +++ b/IDE/src/FileWatcher.bf @@ -558,7 +558,7 @@ namespace IDE #endif } - public void Update(Action fileChangeHandler = null) + public void Update(delegate void(String, String, WatcherChangeTypes) fileChangeHandler = null) { while (true) { diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index 2db79030..36736eca 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -209,7 +209,7 @@ namespace IDE public Targets mTargets = new Targets() ~ delete _; public DebugManager mDebugger ~ delete _; public String mSymSrvStatus = new String() ~ delete _; - public Action mPendingDebugExprHandler = null; + public delegate void(String) mPendingDebugExprHandler = null; public bool mIsImmediateDebugExprEval; public BookmarkManager mBookmarkManager = new BookmarkManager() ~ delete _; public HistoryManager mHistoryManager = new HistoryManager() ~ delete _; @@ -435,9 +435,9 @@ namespace IDE public String mTempFileName ~ delete _; public int32 mParallelGroup = -1; public Task mReadTask /*~ delete _*/; - public Action> mOnReadTaskComplete /*~ delete _*/; + public delegate void(Task) mOnReadTaskComplete /*~ delete _*/; public Task mErrorTask /*~ delete _*/; - public Action> mOnErrorTaskComplete /*~ delete _*/; + public delegate void(Task) mOnErrorTaskComplete /*~ delete _*/; public Monitor mMonitor = new Monitor() ~ delete _; public String mStdInData ~ delete _; @@ -5243,7 +5243,7 @@ namespace IDE }); } - public void WithDocumentTabbedViews(Action func) + public void WithDocumentTabbedViews(delegate void(DarkTabbedView) func) { for (int32 windowIdx = 0; windowIdx < mWindows.Count; windowIdx++) { @@ -5347,7 +5347,7 @@ namespace IDE return null; } - public void WithTabs(Action func) + public void WithTabs(delegate void(TabbedView.TabButton) func) { WithDocumentTabbedViews(scope (documentTabbedView) => { @@ -5366,7 +5366,7 @@ namespace IDE return tab; } - public void WithSourceViewPanels(Action func) + public void WithSourceViewPanels(delegate void(SourceViewPanel) func) { WithTabs(scope (tab) => { @@ -5839,7 +5839,7 @@ namespace IDE if (showType != SourceShowType.New) { - Action tabFunc = scope [&] (tabButton) => + delegate void(TabbedView.TabButton) tabFunc = scope [&] (tabButton) => { var darkTabButton = (DarkTabbedView.DarkTabButton)tabButton; if (tabButton.mContent is SourceViewPanel) @@ -10866,7 +10866,8 @@ namespace IDE Pending } - public EvalResult DebugEvaluate(String expectedType, String expr, String outVal, int cursorPos = -1, DebugManager.Language language = .NotSet, DebugManager.EvalExpressionFlags expressionFlags = .None, Action pendingHandler = null) + public EvalResult DebugEvaluate(String expectedType, String expr, String outVal, int cursorPos = -1, DebugManager.Language language = .NotSet, + DebugManager.EvalExpressionFlags expressionFlags = .None, delegate void(String) pendingHandler = null) { defer { diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index 7c65400b..12e17938 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -2184,7 +2184,7 @@ namespace IDE } - public void WithProjectItems(Action func) + public void WithProjectItems(delegate void(ProjectItem) func) { List idxStack = scope List(); List folderStack = scope List(); diff --git a/IDE/src/Workspace.bf b/IDE/src/Workspace.bf index 03c0d576..4bca90bb 100644 --- a/IDE/src/Workspace.bf +++ b/IDE/src/Workspace.bf @@ -1027,7 +1027,7 @@ namespace IDE } } - public void WithProjectItems(Action func) + public void WithProjectItems(delegate void(ProjectItem) func) { for (var project in mProjects) { diff --git a/IDE/src/ui/BreakpointPanel.bf b/IDE/src/ui/BreakpointPanel.bf index 2a1437e8..7630fe3c 100644 --- a/IDE/src/ui/BreakpointPanel.bf +++ b/IDE/src/ui/BreakpointPanel.bf @@ -60,7 +60,7 @@ namespace IDE.ui public String mPendingEvalStr ~ delete _; public String mCurEvalExpr ~ delete _; public Breakpoint mPendingMemoryBreakpoint ~ { if (_ != null) _.Deref(); }; - public Action mOnPendingMemoryBreakpoint ~ delete _; + public delegate void(int, int, String) mOnPendingMemoryBreakpoint ~ delete _; public this() { @@ -488,7 +488,7 @@ namespace IDE.ui return true; } - public MemoryBreakpointResult TryCreateMemoryBreakpoint(String evalStr, out int addr, out int32 byteCount, String addrType, Action pendingHandler) + public MemoryBreakpointResult TryCreateMemoryBreakpoint(String evalStr, out int addr, out int32 byteCount, String addrType, delegate void(int, int, String) pendingHandler) { addr = 0; byteCount = 0; diff --git a/IDE/src/ui/MemoryPanel.bf b/IDE/src/ui/MemoryPanel.bf index 3db8cefc..22f173f1 100644 --- a/IDE/src/ui/MemoryPanel.bf +++ b/IDE/src/ui/MemoryPanel.bf @@ -427,7 +427,7 @@ namespace IDE.ui Menu menu = new Menu(); - Action addSubMenu = scope (label, useRepType) => { + delegate void(String, bool) addSubMenu = scope (label, useRepType) => { Menu subMenu = menu.AddItem(label); diff --git a/IDE/src/ui/OutputWidget.bf b/IDE/src/ui/OutputWidget.bf index bb623258..ec553a7f 100644 --- a/IDE/src/ui/OutputWidget.bf +++ b/IDE/src/ui/OutputWidget.bf @@ -17,7 +17,7 @@ namespace IDE.ui mIsReadOnly = true; } - public Event> mGotoReferenceEvent ~ _.Dispose(); + public Event mGotoReferenceEvent ~ _.Dispose(); public bool GotoRefrenceAtLine(int line, int lineOfs = 0) { //bool selectLine = true; diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index cbd1fcea..2db1aec6 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -177,10 +177,10 @@ namespace IDE.ui OnlyShowInvoke = 4 } - public Action mOnGenerateAutocomplete ~ delete _; + public delegate void(char32, AutoCompleteOptions) mOnGenerateAutocomplete ~ delete _; public Action mOnFinishAsyncAutocomplete ~ delete _; public Action mOnCancelAsyncAutocomplete ~ delete _; - public Func mOnEscape ~ delete _; // returns 'true' if did work + public delegate bool() mOnEscape ~ delete _; // returns 'true' if did work public AutoComplete mAutoComplete ~ delete _; List mQueuedText = new List() ~ delete _; List mQueuedUnderlines = new List() ~ delete _; diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 3ab9e2ed..3ed4c6b7 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -6641,7 +6641,7 @@ namespace IDE.ui } - public void WithTrackedElementsAtCursor(List trackedElementList, Action func) where T : TrackedTextElement + public void WithTrackedElementsAtCursor(List trackedElementList, delegate void(T) func) where T : TrackedTextElement { int lineIdx; int lineCharIdx; diff --git a/IDE/src/ui/WatchPanel.bf b/IDE/src/ui/WatchPanel.bf index f074a3aa..3ee2aee3 100644 --- a/IDE/src/ui/WatchPanel.bf +++ b/IDE/src/ui/WatchPanel.bf @@ -2800,7 +2800,7 @@ namespace IDE.ui } } - void WithSelected(Action func) + void WithSelected(delegate void(ListViewItem) func) { var root = listView.GetRoot(); root.WithSelectedItems(func, false, true);