Browse Source

Respect x:ClassModifier in NamespaceInfo, Build and Populate methods

pull/11551/head
Max Katz 3 years ago
parent
commit
647b0f10e4
  1. 8
      src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs

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

@ -343,6 +343,8 @@ namespace Avalonia.Build.Tasks
var classTypeDefinition =
classType == null ? null : typeSystem.GetTypeReference(classType).Resolve();
// All XAML files are public by default.
classModifierPublic ??= true;
var populateBuilder = classTypeDefinition == null ?
builder :
@ -353,8 +355,8 @@ namespace Avalonia.Build.Tasks
classModifierPublic ?? true,
populateBuilder,
compiler.DefinePopulateMethod(populateBuilder, parsed, populateName,
classTypeDefinition == null),
buildName == null ? null : compiler.DefineBuildMethod(builder, parsed, buildName, true)));
classTypeDefinition == null && classModifierPublic.Value),
buildName == null ? null : compiler.DefineBuildMethod(builder, parsed, buildName, classModifierPublic.Value)));
}
catch (Exception e)
{
@ -400,7 +402,7 @@ namespace Avalonia.Build.Tasks
document.PopulateMethod,
document.BuildMethod,
builder.DefineSubType(compilerConfig.WellKnownTypes.Object, "NamespaceInfo:" + res.Name,
true),
document.IsPublic),
(closureName, closureBaseType) =>
populateBuilder.DefineSubType(closureBaseType, closureName, false),
(closureName, returnType, parameterTypes) =>

Loading…
Cancel
Save