Browse Source

Update XamlX (#13158)

* Update XamlX, with Avalonia changes

* Made XamlX internal in Designer.HostApp
pull/13179/head
Julien Lebosquain 3 years ago
committed by GitHub
parent
commit
d968d7bf2d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1002
      api/Avalonia.nupkg.xml
  2. 18
      src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
  3. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaXamlIlRuntimeCompiler.cs
  4. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlCompiler.cs
  5. 2
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs
  6. 8
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlClrPropertyInfoHelper.cs
  7. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlPropertyInfoAccessorFactoryEmitter.cs
  8. 4
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlTrampolineBuilder.cs
  9. 2
      src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github
  10. 2
      src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj

1002
api/Avalonia.nupkg.xml

File diff suppressed because it is too large

18
src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs

@ -363,10 +363,16 @@ namespace Avalonia.Build.Tasks
populateBuilder,
parsed,
populateName,
classTypeDefinition == null && classModifierPublic.Value),
classTypeDefinition == null && classModifierPublic.Value
? XamlVisibility.Public
: XamlVisibility.Private),
buildName == null ?
null :
compiler.DefineBuildMethod(builder, parsed, buildName, classModifierPublic.Value))));
compiler.DefineBuildMethod(
builder,
parsed,
buildName,
classModifierPublic.Value ? XamlVisibility.Public : XamlVisibility.Assembly))));
}
catch (Exception e)
{
@ -418,11 +424,11 @@ namespace Avalonia.Build.Tasks
contextClass,
document.TypeBuilderProvider.PopulateMethod,
document.TypeBuilderProvider.BuildMethod,
builder.DefineSubType(compilerConfig.WellKnownTypes.Object, "NamespaceInfo:" + res.Name, true),
builder.DefineSubType(compilerConfig.WellKnownTypes.Object, "NamespaceInfo:" + res.Name, XamlVisibility.Public),
(closureName, closureBaseType) =>
populateBuilder.DefineSubType(closureBaseType, closureName, false),
populateBuilder.DefineSubType(closureBaseType, closureName, XamlVisibility.Private),
(closureName, returnType, parameterTypes) =>
populateBuilder.DefineDelegateSubType(closureName, false, returnType, parameterTypes),
populateBuilder.DefineDelegateSubType(closureName, XamlVisibility.Private, returnType, parameterTypes),
res.Uri, res
);
@ -677,7 +683,7 @@ namespace Avalonia.Build.Tasks
foreach (var ogMethod in wrappedOgType.Methods.Where(m => m.IsPublic && m.IsStatic))
{
var method = typeBuilder.DefineMethod(ogMethod.ReturnType, ogMethod.Parameters, ogMethod.Name,
ogMethod.IsPublic, ogMethod.IsStatic, false);
XamlVisibility.Public, ogMethod.IsStatic, false);
method.Generator.Ldnull();
method.Generator.Throw();
}

4
src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaXamlIlRuntimeCompiler.cs

@ -254,9 +254,9 @@ namespace Avalonia.Markup.Xaml.XamlIl
true,
() => new XamlDocumentTypeBuilderProvider(
builder,
compiler.DefinePopulateMethod(builder, parsed, AvaloniaXamlIlCompiler.PopulateName, true),
compiler.DefinePopulateMethod(builder, parsed, AvaloniaXamlIlCompiler.PopulateName, XamlVisibility.Public),
document.RootInstance is null ?
compiler.DefineBuildMethod(builder, parsed, AvaloniaXamlIlCompiler.BuildName, true) :
compiler.DefineBuildMethod(builder, parsed, AvaloniaXamlIlCompiler.BuildName, XamlVisibility.Public) :
null)));
originalDocuments.Add(document);
}

4
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlCompiler.cs

@ -191,8 +191,8 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
_configuration.TypeMappings.XmlNamespaceInfoProvider == null ?
null :
tb.DefineSubType(_configuration.WellKnownTypes.Object,
"__AvaloniaXamlIlNsInfo", false), (name, bt) => tb.DefineSubType(bt, name, false),
(s, returnType, parameters) => tb.DefineDelegateSubType(s, false, returnType, parameters), baseUri,
"__AvaloniaXamlIlNsInfo", XamlVisibility.Private), (name, bt) => tb.DefineSubType(bt, name, XamlVisibility.Private),
(s, returnType, parameters) => tb.DefineDelegateSubType(s, XamlVisibility.Private, returnType, parameters), baseUri,
fileSource);
}

2
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguage.cs

@ -93,7 +93,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
var nameScopeType = typeSystem.FindType("Avalonia.Controls.INameScope");
var field = typebuilder.DefineField(nameScopeType,
ContextNameScopeFieldName, true, false);
ContextNameScopeFieldName, XamlVisibility.Public, false);
constructor
.Ldarg_0()
.Ldarg(1)

8
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlClrPropertyInfoHelper.cs

@ -57,7 +57,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
var name = lst.Count == 0 ? key : key + "_" + context.Configuration.IdentifierGenerator.GenerateIdentifierPart();
var field = _builder.DefineField(types.IPropertyInfo, name + "!Field", false, true);
var field = _builder.DefineField(types.IPropertyInfo, name + "!Field", XamlVisibility.Private, true);
void Load(IXamlMethod m, IXamlILEmitter cg, bool passThis)
{
@ -80,7 +80,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
var getter = property.Getter == null ?
null :
_builder.DefineMethod(types.XamlIlTypes.Object,
new[] {types.XamlIlTypes.Object}, name + "!Getter", false, true, false);
new[] {types.XamlIlTypes.Object}, name + "!Getter", XamlVisibility.Private, true, false);
if (getter != null)
{
Load(property.Getter, getter.Generator, !property.Getter.IsStatic);
@ -95,7 +95,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
null :
_builder.DefineMethod(types.XamlIlTypes.Void,
new[] {types.XamlIlTypes.Object, types.XamlIlTypes.Object},
name + "!Setter", false, true, false);
name + "!Setter", XamlVisibility.Private, true, false);
if (setter != null)
{
Load(property.Setter, setter.Generator, !property.Getter.IsStatic);
@ -111,7 +111,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
}
var get = _builder.DefineMethod(types.IPropertyInfo, Array.Empty<IXamlType>(),
name + "!Property", true, true, false);
name + "!Property", XamlVisibility.Public, true, false);
var ctor = types.ClrPropertyInfo.Constructors.First(c =>

4
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlPropertyInfoAccessorFactoryEmitter.cs

@ -77,7 +77,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
{
IsStatic = true
});
var indexField = _indexerClosureTypeBuilder.DefineField(intType, "_index", false, false);
var indexField = _indexerClosureTypeBuilder.DefineField(intType, "_index", XamlVisibility.Private, false);
var ctor = _indexerClosureTypeBuilder.DefineConstructor(false, intType);
ctor.Generator
.Ldarg_0()
@ -88,7 +88,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
types.IPropertyAccessor,
new[] { weakReferenceType, types.IPropertyInfo },
IndexerClosureFactoryMethodName,
isPublic: true,
visibility: XamlVisibility.Public,
isStatic: false,
isInterfaceImpl: false)
.Generator

4
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/XamlIlTrampolineBuilder.cs

@ -32,7 +32,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
context.Configuration.WellKnownTypes.Void,
new[] { context.Configuration.WellKnownTypes.Object, context.Configuration.WellKnownTypes.Object },
methodName,
true,
XamlVisibility.Public,
true,
false);
var gen = trampoline.Generator;
@ -88,7 +88,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions
context.Configuration.WellKnownTypes.Boolean,
new[] { context.Configuration.WellKnownTypes.Object, context.Configuration.WellKnownTypes.Object },
methodName,
true,
XamlVisibility.Public,
true,
false);
if (canExecuteMethod.DeclaringType.IsValueType)

2
src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github

@ -1 +1 @@
Subproject commit c23ae3ed669532e2af8d86be18369584a803170a
Subproject commit c59b4b1673051ef86ac07cd51587b6ca8a279dd5

2
src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj

@ -2,6 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
<DefineConstants>$(DefineConstants);XAMLX_INTERNAL</DefineConstants>
</PropertyGroup>
<!--Disable Net Perf. analyzer for submodule to avoid commit issue -->
<PropertyGroup>
@ -20,6 +21,7 @@
<Compile Include="..\..\..\src\Markup\Avalonia.Markup.Xaml.Loader\AvaloniaXamlIlRuntimeCompiler.cs" />
<Compile Include="..\..\..\src\Markup\Avalonia.Markup.Xaml.Loader\CompilerDynamicDependencies.cs" />
<Compile Include="..\..\Avalonia.Base\Utilities\StringBuilderCache.cs" Link="Utilities\StringBuilderCache.cs" />
<Compile Include="..\..\Avalonia.Base\Compatibility\TrimmingAttributes.cs" Link="TrimmingAttributes.cs" Visible="False" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Angle.Windows.Natives" Version="2.1.22045.20230930" />

Loading…
Cancel
Save