Skip to content

Instantly share code, notes, and snippets.

View mkrueger's full-sized avatar

Mike Krüger mkrueger

View GitHub Profile
//
// StatusView.cs
//
// Author:
// Mike Krüger <mikkrg@microsoft.com>
//
// Copyright (c) 2020 Microsoft Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
//
// CollectionCache.cs
//
// Author:
// Mike Krüger <mikkrg@microsoft.com>
//
// Copyright (c) 2019 Microsoft Corporation. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace NetCoreConsoleAp
{
class Program
{
static void Main(string[] args)
"GUI Thread" at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexInterpreter.Advance (int) [0x00025] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexInterpreter.cs:56
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexInterpreter.Go () [0x00329] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexInterpreter.cs:482
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexRunner.Scan (MonoDevelop.Ide.Editor.Highlighting.RegexEngine.Regex,string,int,int,int,int,bool,System.TimeSpan) [0x00114] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexRunner.cs:184
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.Regex.Run (bool,int,string,int,int,int,System.TimeSpan) [0x000a1] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/Regex.cs:12
"GUI Thread" at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexInterpreter.Advance (int) [0x00025] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexInterpreter.cs:56
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexInterpreter.Go () [0x00329] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexInterpreter.cs:482
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.RegexRunner.Scan (MonoDevelop.Ide.Editor.Highlighting.RegexEngine.Regex,string,int,int,int,int,bool,System.TimeSpan) [0x00114] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/RegexRunner.cs:184
at MonoDevelop.Ide.Editor.Highlighting.RegexEngine.Regex.Run (bool,int,string,int,int,int,System.TimeSpan) [0x000a1] in /Users/mkrueger/work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Highlighting/RegexEngine/Regex.cs:12
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
index e4dda73ec2..020899f643 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeActions/CodeActionEditorExtension.cs
@@ -186,7 +186,19 @@ namespace MonoDevelop.CodeActions
{
Runtime.AssertMainThread ();
var caretOffset = Editor.CaretOffset;
- return collections.Select (c => FilterOnUIThread (c, workspace)).Where(x => x != null).OrderBy(x => GetDistance (x, caretOffset)).ToImmutableArray ();
+ var builder = ImmutableArray.CreateBuilder<CodeFixCollection> (collections.Length);
"<unnamed thread>" at <unknown> <0xffffffff>
at (wrapper managed-to-native) object.__icall_wrapper_mono_threads_state_poll () [0x00006] in <69e8aa7a1d73495d92adb99b890f03fc>:0
at System.DateTime.get_Year () <0x0001b>
at System.TimeZoneInfo.IsInDST (System.TimeZoneInfo/AdjustmentRule,System.DateTime) [0x00013] in /home/mkrueger/work/install/mono/mcs/class/corlib/System/TimeZoneInfo.cs:911
at System.TimeZoneInfo.GetUtcOffsetHelper (System.DateTime,System.TimeZoneInfo,bool&) [0x0004a] in /home/mkrueger/work/install/mono/mcs/class/corlib/System/TimeZoneInfo.cs:815
at System.TimeZoneInfo.GetUtcOffset (System.DateTime,bool&) [0x00052] in /home/mkrueger/work/install/mono/mcs/class/corlib/System/TimeZoneInfo.cs:795
at System.TimeZoneInfo.GetUtcOffset (System.DateTime) [0x00000] in /home/mkrueger/work/install/mono/mcs/class/corlib/System/TimeZoneInfo.cs:763
at System.TimeZoneInfo.ConvertTimeFromUtc (System.DateTime) [0x00025] in /home/mkrueger/work/install/mono/mcs/class/corlib/System/TimeZoneInfo.cs:4
Full thread dump:
"Threadpool worker" tid=0x0x7f69fcd07700 this=0x0x7f69be6e7190 thread handle 0x463 state : interrupted state owns ()
"<threadpool thread>" tid=0x0x7f6a1aa33700 this=0x0x7f6a1a4e91f0 thread handle 0x4d6 state : interrupted state owns ()
"Threadpool worker" tid=0x0x7f69fcb06700 this=0x0x7f69be6e6ed0 thread handle 0x457 state : interrupted state owns ()
System.InvalidOperationException: HashSet have been modified while it was iterated over
at System.Collections.Generic.HashSet`1+Enumerator[MonoDevelop.CodeIssues.IssueSummary].CheckState () [0x00028] in /build/mono/src/mono-3.0.7/mcs/class/System.Core/System.Collections.Generic/HashSet.cs:675
at System.Collections.Generic.HashSet`1+Enumerator[MonoDevelop.CodeIssues.IssueSummary].MoveNext () [0x00000] in /build/mono/src/mono-3.0.7/mcs/class/System.Core/System.Collections.Generic/HashSet.cs:629
at System.Linq.Enumerable.Any[IssueSummary] (IEnumerable`1 source, System.Func`2 predicate) [0x00026] in /build/mono/src/mono-3.0.7/mcs/class/System.Core/System.Linq/Enumerable.cs:147
at MonoDevelop.CodeIssues.IssueGroup.MonoDevelop.CodeIssues.IIssueTreeNode.get_Visible () [0x00001] in /home/mkrueger/work/monodevelop/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.CodeIssues/IssueGroup.cs:110
at MonoDevelop.CodeIssues.CodeIssuePadControl.ProcessUpdateQueue () [0x00079] in /home/mkrueger/work/monodevelop
public unsafe class DynamicTest
{
public dynamic SimpleProperty { get; set; }
public List<dynamic> DynamicGenerics1(Action<object, dynamic[], object> param) { return null; }
public void DynamicGenerics2(Action<object, dynamic, object> param) { }
public void DynamicGenerics3(Action<int, dynamic, object> param) { }
public void DynamicGenerics4(Action<int[], dynamic, object> param) { }
public void DynamicGenerics5(Action<int*[], dynamic, object> param) { }
public void DynamicGenerics6(ref Action<object, dynamic, object> param) { }