Fix compile warnings.

This commit is contained in:
BDisp
2024-07-04 23:12:04 +01:00
parent 62b151e5c9
commit 7647de7679
9 changed files with 170 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Reflection;
@@ -56,7 +57,7 @@ public static partial class Application
string assemblyLocation = AppDomain.CurrentDomain.BaseDirectory;
// Find the resource file name of the assembly
var resourceFilename = $"{Path.GetFileNameWithoutExtension (assembly.Location)}.resources.dll";
var resourceFilename = $"{Path.GetFileNameWithoutExtension (AppContext.BaseDirectory)}.resources.dll";
// Return all culture for which satellite folder found with culture code.
return culture.Where (
@@ -192,6 +193,8 @@ public static partial class Application
/// <see cref="ConsoleDriver"/> to use. If neither <paramref name="driver"/> or <paramref name="driverName"/> are
/// specified the default driver for the platform will be used.
/// </param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static void Init (ConsoleDriver driver = null, string driverName = null) { InternalInit (driver, driverName); }
internal static bool _initialized;
@@ -206,6 +209,8 @@ public static partial class Application
// Unit Tests - To initialize the app with a custom Toplevel, using the FakeDriver. calledViaRunT will be false, causing all state to be reset.
//
// calledViaRunT: If false (default) all state will be reset. If true the state will not be reset.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
internal static void InternalInit (
ConsoleDriver driver = null,
string driverName = null,
@@ -318,6 +323,7 @@ public static partial class Application
/// <summary>Gets of list of <see cref="ConsoleDriver"/> types that are available.</summary>
/// <returns></returns>
[RequiresUnreferencedCode ("AOT")]
public static List<Type> GetDriverTypes ()
{
// use reflection to get the list of drivers
@@ -660,6 +666,8 @@ public static partial class Application
/// </para>
/// </remarks>
/// <returns>The created <see cref="Toplevel"/> object. The caller is responsible for disposing this object.</returns>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static Toplevel Run (Func<Exception, bool> errorHandler = null, ConsoleDriver driver = null) { return Run<Toplevel> (errorHandler, driver); }
/// <summary>
@@ -683,6 +691,8 @@ public static partial class Application
/// <see langword="null"/> if <see cref="Init"/> has already been called.
/// </param>
/// <returns>The created T object. The caller is responsible for disposing this object.</returns>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static T Run<T> (Func<Exception, bool> errorHandler = null, ConsoleDriver driver = null)
where T : Toplevel, new()
{

View File

@@ -153,6 +153,8 @@ public static class ConfigurationManager
/// </summary>
public static SettingsScope? Settings
{
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
get
{
if (_settings is null)
@@ -184,6 +186,8 @@ public static class ConfigurationManager
public static event EventHandler<ConfigurationManagerEventArgs>? Applied;
/// <summary>Applies the configuration settings to the running <see cref="Application"/> instance.</summary>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static void Apply ()
{
var settings = false;
@@ -238,6 +242,8 @@ public static class ConfigurationManager
/// If <see langword="true"/> the state of <see cref="ConfigurationManager"/> will be reset to the
/// defaults.
/// </param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static void Load (bool reset = false)
{
Debug.WriteLine ("ConfigurationManager.Load()");
@@ -325,6 +331,8 @@ public static class ConfigurationManager
/// <see langword="true"/>.
/// </summary>
/// <remarks></remarks>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public static void Reset ()
{
Debug.WriteLine (@"ConfigurationManager.Reset()");
@@ -478,6 +486,8 @@ public static class ConfigurationManager
/// make sure you copy the Theme definitions from the existing <c>Terminal.Gui.Resources.config.json</c> file.
/// </para>
/// </remarks>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
internal static void GetHardCodedDefaults ()
{
if (_allConfigProperties is null)
@@ -499,6 +509,7 @@ public static class ConfigurationManager
/// Initializes the internal state of ConfigurationManager. Nominally called once as part of application startup
/// to initialize global state. Also called from some Unit Tests to ensure correctness (e.g. Reset()).
/// </summary>
[RequiresUnreferencedCode ("AOT")]
internal static void Initialize ()
{
_allConfigProperties = new ();
@@ -588,6 +599,8 @@ public static class ConfigurationManager
/// <summary>Creates a JSON document with the configuration specified.</summary>
/// <returns></returns>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
internal static string ToJson ()
{
//Debug.WriteLine ("ConfigurationManager.ToJson()");
@@ -595,6 +608,8 @@ public static class ConfigurationManager
return JsonSerializer.Serialize (Settings!, typeof (SettingsScope), _serializerContext);
}
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
internal static Stream ToStream ()
{
string json = JsonSerializer.Serialize (Settings!, typeof (SettingsScope), _serializerContext);

View File

@@ -42,7 +42,7 @@ internal class KeyCodeJsonConverter : JsonConverter<KeyCode>
}
// The enum uses "D0..D9" for the number keys
if (Enum.TryParse (reader.GetString ().TrimStart ('D', 'd'), false, out key))
if (Enum.TryParse (reader.GetString ()!.TrimStart ('D', 'd'), false, out key))
{
break;
}

View File

@@ -1,5 +1,6 @@
#nullable enable
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -11,9 +12,12 @@ namespace Terminal.Gui;
/// data to/from <see cref="ConfigurationManager"/> JSON documents.
/// </summary>
/// <typeparam name="scopeT"></typeparam>
internal class ScopeJsonConverter<scopeT> : JsonConverter<scopeT> where scopeT : Scope<scopeT>
internal class ScopeJsonConverter<[DynamicallyAccessedMembers (DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] scopeT> : JsonConverter<scopeT> where scopeT : Scope<scopeT>
{
[RequiresDynamicCode ("Calls System.Type.MakeGenericType(params Type[])")]
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public override scopeT Read (ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
{
if (reader.TokenType != JsonTokenType.StartObject)
{
@@ -223,6 +227,8 @@ internal class ScopeJsonConverter<scopeT> : JsonConverter<scopeT> where scopeT :
internal class ReadHelper<converterT> : ReadHelper
{
private readonly ReadDelegate _readDelegate;
[RequiresUnreferencedCode ("Calls System.Delegate.CreateDelegate(Type, Object, String)")]
public ReadHelper (object converter) { _readDelegate = (ReadDelegate)Delegate.CreateDelegate (typeof (ReadDelegate), converter, "Read"); }
public override object? Read (ref Utf8JsonReader reader, Type type, JsonSerializerOptions options)

View File

@@ -1,5 +1,6 @@
#nullable enable
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -37,6 +38,8 @@ public class SettingsScope : Scope<SettingsScope>
/// <summary>Updates the <see cref="SettingsScope"/> with the settings in a JSON string.</summary>
/// <param name="stream">Json document to update the settings with.</param>
/// <param name="source">The source (filename/resource name) the Json document was read from.</param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public SettingsScope? Update (Stream stream, string source)
{
// Update the existing settings with the new settings.
@@ -67,6 +70,8 @@ public class SettingsScope : Scope<SettingsScope>
/// <summary>Updates the <see cref="SettingsScope"/> with the settings in a JSON file.</summary>
/// <param name="filePath"></param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public SettingsScope? Update (string filePath)
{
string realPath = filePath.Replace ("~", Environment.GetFolderPath (Environment.SpecialFolder.UserProfile));
@@ -93,6 +98,8 @@ public class SettingsScope : Scope<SettingsScope>
/// <summary>Updates the <see cref="SettingsScope"/> with the settings in a JSON string.</summary>
/// <param name="json">Json document to update the settings with.</param>
/// <param name="source">The source (filename/resource name) the Json document was read from.</param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public SettingsScope? Update (string json, string source)
{
var stream = new MemoryStream ();
@@ -107,6 +114,8 @@ public class SettingsScope : Scope<SettingsScope>
/// <summary>Updates the <see cref="SettingsScope"/> with the settings from a Json resource.</summary>
/// <param name="assembly"></param>
/// <param name="resourceName"></param>
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
public SettingsScope? UpdateFromResource (Assembly assembly, string resourceName)
{
if (resourceName is null || string.IsNullOrEmpty (resourceName))

View File

@@ -1,6 +1,7 @@
#nullable enable
using System.Collections;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
namespace Terminal.Gui;
@@ -64,6 +65,9 @@ public class ThemeManager : IDictionary<string, ThemeScope>
public string Theme
{
get => SelectedTheme;
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
set => SelectedTheme = value;
}
@@ -73,9 +77,14 @@ public class ThemeManager : IDictionary<string, ThemeScope>
[SerializableConfigurationProperty (Scope = typeof (SettingsScope), OmitClassName = true)]
public static Dictionary<string, ThemeScope>? Themes
{
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
get => Settings? ["Themes"]
?.PropertyValue as
Dictionary<string, ThemeScope>; // themes ?? new Dictionary<string, ThemeScope> ();
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
set =>
//if (themes is null || value is null) {
@@ -93,6 +102,9 @@ public class ThemeManager : IDictionary<string, ThemeScope>
internal static string SelectedTheme
{
get => _theme;
[RequiresUnreferencedCode ("Calls Terminal.Gui.ConfigurationManager.Settings")]
[RequiresDynamicCode ("Calls Terminal.Gui.ConfigurationManager.Settings")]
set
{
string oldTheme = _theme;
@@ -109,6 +121,8 @@ public class ThemeManager : IDictionary<string, ThemeScope>
/// <summary>Event fired he selected theme has changed. application.</summary>
public event EventHandler<ThemeManagerEventArgs>? ThemeChanged;
[RequiresUnreferencedCode ("Calls Terminal.Gui.ThemeManager.Themes")]
[RequiresDynamicCode ("Calls Terminal.Gui.ThemeManager.Themes")]
internal static void GetHardCodedDefaults ()
{
//Debug.WriteLine ("Themes.GetHardCodedDefaults()");
@@ -129,6 +143,8 @@ public class ThemeManager : IDictionary<string, ThemeScope>
ThemeChanged?.Invoke (this, new ThemeManagerEventArgs (theme));
}
[RequiresUnreferencedCode ("Calls Terminal.Gui.ThemeManager.Themes")]
[RequiresDynamicCode ("Calls Terminal.Gui.ThemeManager.Themes")]
internal static void Reset ()
{
Debug.WriteLine ("Themes.Reset()");
@@ -140,33 +156,130 @@ public class ThemeManager : IDictionary<string, ThemeScope>
#region IDictionary
#pragma warning disable 1591
[UnconditionalSuppressMessage ("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "<Pending>")]
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
public ICollection<string> Keys => ((IDictionary<string, ThemeScope>)Themes!).Keys;
[UnconditionalSuppressMessage ("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "<Pending>")]
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
public ICollection<ThemeScope> Values => ((IDictionary<string, ThemeScope>)Themes!).Values;
[UnconditionalSuppressMessage ("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "<Pending>")]
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
public int Count => ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Count;
[UnconditionalSuppressMessage ("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "<Pending>")]
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
public bool IsReadOnly => ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).IsReadOnly;
public ThemeScope this [string key]
{
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
get => ((IDictionary<string, ThemeScope>)Themes!) [key];
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
set => ((IDictionary<string, ThemeScope>)Themes!) [key] = value;
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
}
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public void Add (string key, ThemeScope value) { ((IDictionary<string, ThemeScope>)Themes!).Add (key, value); }
public bool ContainsKey (string key) { return ((IDictionary<string, ThemeScope>)Themes!).ContainsKey (key); }
public bool Remove (string key) { return ((IDictionary<string, ThemeScope>)Themes!).Remove (key); }
public bool TryGetValue (string key, out ThemeScope value) { return ((IDictionary<string, ThemeScope>)Themes!).TryGetValue (key, out value!); }
public void Add (KeyValuePair<string, ThemeScope> item) { ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Add (item); }
public void Clear () { ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Clear (); }
public bool Contains (KeyValuePair<string, ThemeScope> item) { return ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Contains (item); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public bool ContainsKey (string key) { return ((IDictionary<string, ThemeScope>)Themes!).ContainsKey (key); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public bool Remove (string key) { return ((IDictionary<string, ThemeScope>)Themes!).Remove (key); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public bool TryGetValue (string key, out ThemeScope value) { return ((IDictionary<string, ThemeScope>)Themes!).TryGetValue (key, out value!); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public void Add (KeyValuePair<string, ThemeScope> item) { ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Add (item); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public void Clear () { ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Clear (); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public bool Contains (KeyValuePair<string, ThemeScope> item) { return ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Contains (item); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public void CopyTo (KeyValuePair<string, ThemeScope> [] array, int arrayIndex)
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
{
((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).CopyTo (array, arrayIndex);
}
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public bool Remove (KeyValuePair<string, ThemeScope> item) { return ((ICollection<KeyValuePair<string, ThemeScope>>)Themes!).Remove (item); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("AOT")]
[RequiresDynamicCode ("AOT")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
public IEnumerator<KeyValuePair<string, ThemeScope>> GetEnumerator () { return ((IEnumerable<KeyValuePair<string, ThemeScope>>)Themes!).GetEnumerator (); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
[RequiresUnreferencedCode ("Calls Terminal.Gui.ThemeManager.Themes")]
[RequiresDynamicCode ("Calls Terminal.Gui.ThemeManager.Themes")]
#pragma warning disable IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning disable IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
IEnumerator IEnumerable.GetEnumerator () { return ((IEnumerable)Themes!).GetEnumerator (); }
#pragma warning restore IL3051 // 'RequiresDynamicCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore IL2046 // 'RequiresUnreferencedCodeAttribute' annotations must match across all interface implementations or overrides.
#pragma warning restore 1591
#endregion

View File

@@ -13,6 +13,7 @@
// limitations under the License.
#define GUICS
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
namespace Unix.Terminal;
@@ -69,6 +70,7 @@ internal class UnmanagedLibrary
}
}
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
static UnmanagedLibrary ()
{
PlatformID platform = Environment.OSVersion.Platform;

View File

@@ -3,6 +3,7 @@
//
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using static Terminal.Gui.ConsoleDrivers.ConsoleKeyMapping;
using static Terminal.Gui.NetEvents;
@@ -452,6 +453,7 @@ internal class NetEvents : IDisposable
HandleKeyboardEvent (newConsoleKeyInfo);
}
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
private MouseButtonState MapMouseFlags (MouseFlags mouseFlags)
{
MouseButtonState mbs = default;
@@ -1249,6 +1251,7 @@ internal class NetDriver : ConsoleDriver
#region Color Handling
// Cache the list of ConsoleColor values.
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
private static readonly HashSet<int> ConsoleColorValues = new (
Enum.GetValues (typeof (ConsoleColor))
.OfType<ConsoleColor> ()

View File

@@ -1,4 +1,5 @@
using System.Globalization;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO.Abstractions;
using Terminal.Gui.Resources;
using static System.Environment;
@@ -143,6 +144,7 @@ public class FileDialogStyle
/// </summary>
public string WrongFileTypeFeedback { get; set; } = Strings.fdWrongFileTypeFeedback;
[UnconditionalSuppressMessage ("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "<Pending>")]
private Dictionary<IDirectoryInfo, string> DefaultTreeRootGetter ()
{
Dictionary<IDirectoryInfo, string> roots = new ();