Skip to content

Commit

Permalink
fix: stop generating VisualTreeDiagnostic on Xamarin. It causes runti…
Browse files Browse the repository at this point in the history
…me issues (#92)
  • Loading branch information
glennawatson committed Dec 19, 2019
1 parent ecb4cc2 commit 7766d7f
Show file tree
Hide file tree
Showing 16 changed files with 31 additions and 294 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ internal class PublicEventNamespaceResolver : EventNamespaceResolverBase

// Winforms
"System.CodeDom",

// Xamarin
"Xamarin.Forms.Xaml.Diagnostics"
},
StringComparer.InvariantCulture);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for full license information.

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
Expand All @@ -16,6 +17,19 @@ namespace Pharmacist.Core.Generation.Resolvers
{
internal class PublicStaticEventNamespaceResolver : EventNamespaceResolverBase
{
private static readonly ISet<string> SkipNamespaceList = new HashSet<string>(
new[]
{
"ReactiveUI.Events",

// Winforms
"System.CodeDom",

// Xamarin
"Xamarin.Forms.Xaml.Diagnostics"
},
StringComparer.InvariantCulture);

protected override IEventGenerator GetEventGenerator()
{
return new StaticEventGenerator();
Expand All @@ -27,7 +41,7 @@ protected override IEventGenerator GetEventGenerator()
var output = new ConcurrentBag<(ITypeDefinition typeHostingEvent, ITypeDefinition? baseTypeDefinition, IEnumerable<IEvent> events)>();

Parallel.ForEach(
GetPublicTypesWithEvents(compilation),
GetPublicTypesWithEvents(compilation).Where(x => !SkipNamespaceList.Contains(x.Namespace)),
typeDefinition =>
{
var validEvents = new HashSet<IEvent>(EventNameComparer.Default);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4040,24 +4040,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4050,24 +4050,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2710,24 +2710,4 @@ namespace Xamarin.Forms.Internals

, x => _data.CollectionChanged += x, x => _data.CollectionChanged -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3756,24 +3756,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3060,24 +3060,4 @@ namespace Xamarin.Forms.Platform.WinRT

, x => _data.ValueChanged += x, x => _data.ValueChanged -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3765,24 +3765,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3112,26 +3112,6 @@ namespace Xamarin.Forms
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}

namespace Xamarin.Forms.Platform.MacOS
{
/// <summary>
Expand All @@ -3147,4 +3127,4 @@ namespace Xamarin.Forms.Platform.MacOS
/// <inheritdoc/>
public override void SetupMainAppMenu(global::AppKit.NSMenu nativeMenu) => _setupMainAppMenu.OnNext(nativeMenu);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4349,24 +4349,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4359,24 +4359,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2896,24 +2896,4 @@ namespace Xamarin.Forms.Internals

, x => _data.CollectionChanged += x, x => _data.CollectionChanged -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3962,24 +3962,4 @@ namespace Xamarin.Forms

, x => global::Xamarin.Forms.Forms.ViewInitialized += x, x => global::Xamarin.Forms.Forms.ViewInitialized -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3246,24 +3246,4 @@ namespace Xamarin.Forms.Platform.WinRT

, x => _data.ValueChanged += x, x => _data.ValueChanged -= x);
}
}

namespace Xamarin.Forms.Xaml.Diagnostics
{
/// <summary>
/// A class that contains extension methods to wrap events contained within static classes within the <see cref = "Xamarin.Forms.Xaml.Diagnostics"/> namespace.
/// </summary>
public static class Events
{
/// <summary>
/// Gets an observable which signals when the <see cref = "global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged"/> event triggers.
/// </summary>
public static global::System.IObservable<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs> VisualDiagnosticsVisualTreeChanged => global::System.Reactive.Linq.Observable.FromEvent<global::System.EventHandler<global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs>(eventHandler =>
{
void Handler(object sender, global::Xamarin.Forms.Xaml.Diagnostics.VisualTreeChangeEventArgs e) => eventHandler(e);
return Handler;
}

, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged += x, x => global::Xamarin.Forms.Xaml.Diagnostics.VisualDiagnostics.VisualTreeChanged -= x);
}
}
}
Loading

0 comments on commit 7766d7f

Please sign in to comment.