From 03b33fb9cad02e788c2a48e807bc40fd45dc59a4 Mon Sep 17 00:00:00 2001 From: "Artyom V. Gorchakov" Date: Sun, 1 Nov 2020 13:40:30 +0300 Subject: [PATCH] fix: Remove ConstructableObjectTransformer (#13) * Strip out the namespace * Strip out the instantiation * Actually strip out the transformer --- .../Infrastructure/MiniCompiler.cs | 1 - .../Infrastructure/NameReceiver.cs | 6 +++--- src/XamlNameReferenceGenerator/NameReferenceGenerator.cs | 9 +++------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/XamlNameReferenceGenerator/Infrastructure/MiniCompiler.cs b/src/XamlNameReferenceGenerator/Infrastructure/MiniCompiler.cs index 836eaffdd6..03e1d6e2d2 100644 --- a/src/XamlNameReferenceGenerator/Infrastructure/MiniCompiler.cs +++ b/src/XamlNameReferenceGenerator/Infrastructure/MiniCompiler.cs @@ -32,7 +32,6 @@ namespace XamlNameReferenceGenerator.Infrastructure Transformers.Add(new XamlIntrinsicsTransformer()); Transformers.Add(new XArgumentsTransformer()); Transformers.Add(new TypeReferenceResolver()); - Transformers.Add(new ConstructableObjectTransformer()); } protected override XamlEmitContext InitCodeGen( diff --git a/src/XamlNameReferenceGenerator/Infrastructure/NameReceiver.cs b/src/XamlNameReferenceGenerator/Infrastructure/NameReceiver.cs index 03f351aeeb..11fbbde685 100644 --- a/src/XamlNameReferenceGenerator/Infrastructure/NameReceiver.cs +++ b/src/XamlNameReferenceGenerator/Infrastructure/NameReceiver.cs @@ -12,9 +12,9 @@ namespace XamlNameReferenceGenerator.Infrastructure public IXamlAstNode Visit(IXamlAstNode node) { - if (node is XamlAstConstructableObjectNode constructableObjectNode) + if (node is XamlAstObjectNode objectNode) { - var clrType = constructableObjectNode.Type.GetClrType(); + var clrType = objectNode.Type.GetClrType(); var isAvaloniaControl = clrType .Interfaces .Any(abstraction => abstraction.IsInterface && @@ -25,7 +25,7 @@ namespace XamlNameReferenceGenerator.Infrastructure return node; } - foreach (var child in constructableObjectNode.Children) + foreach (var child in objectNode.Children) { if (child is XamlAstXamlPropertyValueNode propertyValueNode && propertyValueNode.Property is XamlAstNamePropertyReference namedProperty && diff --git a/src/XamlNameReferenceGenerator/NameReferenceGenerator.cs b/src/XamlNameReferenceGenerator/NameReferenceGenerator.cs index cbd41e15d2..6497df5f77 100644 --- a/src/XamlNameReferenceGenerator/NameReferenceGenerator.cs +++ b/src/XamlNameReferenceGenerator/NameReferenceGenerator.cs @@ -15,17 +15,14 @@ namespace XamlNameReferenceGenerator [Generator] public class NameReferenceGenerator : ISourceGenerator { - private const string AttributeName = "Avalonia.Controls.GenerateTypedNameReferencesAttribute"; + private const string AttributeName = "GenerateTypedNameReferencesAttribute"; private const string AttributeFile = "GenerateTypedNameReferencesAttribute"; private const string AttributeCode = @"// using System; -namespace Avalonia.Controls -{ - [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] - internal sealed class GenerateTypedNameReferencesAttribute : Attribute { } -} +[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] +internal sealed class GenerateTypedNameReferencesAttribute : Attribute { } "; private static readonly SymbolDisplayFormat SymbolDisplayFormat = new SymbolDisplayFormat( typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces,