Browse Source

Move OnExtensionType and fix netstandard error

pull/7812/head
Max Katz 4 years ago
parent
commit
8a6bb0ffa1
  1. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlOptionMarkupExtensionTransformer.cs
  2. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs

4
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlOptionMarkupExtensionTransformer.cs

@ -55,7 +55,7 @@ internal class AvaloniaXamlIlOptionMarkupExtensionTransformer : IXamlAstTransfor
var shouldRemoveProp = false; var shouldRemoveProp = false;
var onObjs = extProp.Values.OfType<XamlAstObjectNode>() var onObjs = extProp.Values.OfType<XamlAstObjectNode>()
.Where(o => o.Type.GetClrType().GetFqn() == AvaloniaXamlIlWellKnownTypes.OnFqn).ToArray(); .Where(o => o.Type.GetClrType() == context.GetAvaloniaTypes().OnExtensionType).ToArray();
if (onObjs.Any()) if (onObjs.Any())
{ {
shouldRemoveProp = true; shouldRemoveProp = true;
@ -284,7 +284,7 @@ internal class AvaloniaXamlIlOptionMarkupExtensionTransformer : IXamlAstTransfor
var types = Branches.Select(b => b.Value.Type); var types = Branches.Select(b => b.Value.Type);
if (DefaultNode?.Type is { } type) if (DefaultNode?.Type is { } type)
{ {
types = types.Append(type); types = types.Concat(new [] { type });
} }
return types.Select(t => t.GetClrType()).ToArray().GetCommonBaseClass(); return types.Select(t => t.GetClrType()).ToArray().GetCommonBaseClass();
} }

4
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs

@ -9,8 +9,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
{ {
class AvaloniaXamlIlWellKnownTypes class AvaloniaXamlIlWellKnownTypes
{ {
public const string OnFqn = "Avalonia.Markup.Xaml:Avalonia.Markup.Xaml.MarkupExtensions.On";
public IXamlType RuntimeHelpers { get; } public IXamlType RuntimeHelpers { get; }
public IXamlType AvaloniaObject { get; } public IXamlType AvaloniaObject { get; }
public IXamlType IAvaloniaObject { get; } public IXamlType IAvaloniaObject { get; }
@ -34,6 +32,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
public IXamlType DataTypeAttribute { get; } public IXamlType DataTypeAttribute { get; }
public IXamlType MarkupExtensionOptionAttribute { get; } public IXamlType MarkupExtensionOptionAttribute { get; }
public IXamlType MarkupExtensionDefaultOptionAttribute { get; } public IXamlType MarkupExtensionDefaultOptionAttribute { get; }
public IXamlType OnExtensionType { get; }
public IXamlType UnsetValueType { get; } public IXamlType UnsetValueType { get; }
public IXamlType StyledElement { get; } public IXamlType StyledElement { get; }
public IXamlType IStyledElement { get; } public IXamlType IStyledElement { get; }
@ -134,6 +133,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
DataTypeAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.DataTypeAttribute"); DataTypeAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.DataTypeAttribute");
MarkupExtensionOptionAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.MarkupExtensionOptionAttribute"); MarkupExtensionOptionAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.MarkupExtensionOptionAttribute");
MarkupExtensionDefaultOptionAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.MarkupExtensionDefaultOptionAttribute"); MarkupExtensionDefaultOptionAttribute = cfg.TypeSystem.GetType("Avalonia.Metadata.MarkupExtensionDefaultOptionAttribute");
OnExtensionType = cfg.TypeSystem.GetType("Avalonia.Markup.Xaml.MarkupExtensions.On");
AvaloniaObjectBindMethod = AvaloniaObjectExtensions.FindMethod("Bind", IDisposable, false, IAvaloniaObject, AvaloniaObjectBindMethod = AvaloniaObjectExtensions.FindMethod("Bind", IDisposable, false, IAvaloniaObject,
AvaloniaProperty, AvaloniaProperty,
IBinding, cfg.WellKnownTypes.Object); IBinding, cfg.WellKnownTypes.Object);

Loading…
Cancel
Save