From 501732f4eeebcc86d78256e23dfe00df1a24e1ea Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Thu, 8 Apr 2021 20:12:04 +0300 Subject: [PATCH 01/10] Mark System.Console APIs as unsupported on Android --- .../System.Console/src/System/Console.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/libraries/System.Console/src/System/Console.cs b/src/libraries/System.Console/src/System/Console.cs index f64dc85e6a0be..58ae5a9496f1e 100644 --- a/src/libraries/System.Console/src/System/Console.cs +++ b/src/libraries/System.Console/src/System/Console.cs @@ -33,6 +33,7 @@ public static class Console private static ConsoleCancelEventHandler? s_cancelCallbacks; private static ConsolePal.ControlCHandlerRegistrar? s_registrar; + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static TextReader In { @@ -57,6 +58,7 @@ static TextReader EnsureInitialized() } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static Encoding InputEncoding { @@ -113,6 +115,7 @@ public static Encoding OutputEncoding } return encoding; } + [UnsupportedOSPlatform("android")] set { CheckNonNull(value, nameof(value)); @@ -154,12 +157,14 @@ public static bool KeyAvailable } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static ConsoleKeyInfo ReadKey() { return ConsolePal.ReadKey(false); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static ConsoleKeyInfo ReadKey(bool intercept) { @@ -280,6 +285,7 @@ static StrongBox EnsureInitialized() public static int CursorSize { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] get { return ConsolePal.CursorSize; } [SupportedOSPlatform("windows")] @@ -300,6 +306,7 @@ public static bool CapsLock internal const ConsoleColor UnknownColor = (ConsoleColor)(-1); + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static ConsoleColor BackgroundColor { @@ -307,6 +314,7 @@ public static ConsoleColor BackgroundColor set { ConsolePal.BackgroundColor = value; } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static ConsoleColor ForegroundColor { @@ -314,6 +322,7 @@ public static ConsoleColor ForegroundColor set { ConsolePal.ForegroundColor = value; } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static void ResetColor() { @@ -322,6 +331,7 @@ public static void ResetColor() public static int BufferWidth { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] get { return ConsolePal.BufferWidth; } [SupportedOSPlatform("windows")] @@ -330,6 +340,7 @@ public static int BufferWidth public static int BufferHeight { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] get { return ConsolePal.BufferHeight; } [SupportedOSPlatform("windows")] @@ -358,6 +369,7 @@ public static int WindowTop public static int WindowWidth { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] get { return ConsolePal.WindowWidth; } [SupportedOSPlatform("windows")] @@ -366,6 +378,7 @@ public static int WindowWidth public static int WindowHeight { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] get { return ConsolePal.WindowHeight; } [SupportedOSPlatform("windows")] @@ -384,12 +397,14 @@ public static void SetWindowSize(int width, int height) ConsolePal.SetWindowSize(width, height); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static int LargestWindowWidth { get { return ConsolePal.LargestWindowWidth; } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static int LargestWindowHeight { @@ -400,6 +415,7 @@ public static bool CursorVisible { [SupportedOSPlatform("windows")] get { return ConsolePal.CursorVisible; } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] set { ConsolePal.CursorVisible = value; } } @@ -423,6 +439,7 @@ public static int CursorTop /// /// Columns are numbered from left to right starting at 0. Rows are numbered from top to bottom starting at 0. /// + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static (int Left, int Top) GetCursorPosition() { @@ -433,6 +450,7 @@ public static string Title { [SupportedOSPlatform("windows")] get { return ConsolePal.Title; } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] set { @@ -440,6 +458,7 @@ public static string Title } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static void Beep() { @@ -464,11 +483,13 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth ConsolePal.MoveBufferArea(sourceLeft, sourceTop, sourceWidth, sourceHeight, targetLeft, targetTop, sourceChar, sourceForeColor, sourceBackColor); } + [UnsupportedOSPlatform("android")] public static void Clear() { ConsolePal.Clear(); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static void SetCursorPosition(int left, int top) { @@ -481,6 +502,7 @@ public static void SetCursorPosition(int left, int top) ConsolePal.SetCursorPosition(left, top); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static event ConsoleCancelEventHandler? CancelKeyPress { @@ -515,6 +537,7 @@ public static event ConsoleCancelEventHandler? CancelKeyPress } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static bool TreatControlCAsInput { @@ -522,6 +545,7 @@ public static bool TreatControlCAsInput set { ConsolePal.TreatControlCAsInput = value; } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static Stream OpenStandardInput() { From a39641b836b87b20c5aad1da1050781c694ed997 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Fri, 9 Apr 2021 12:31:30 +0300 Subject: [PATCH 02/10] Update ref --- .../System.Console/ref/System.Console.cs | 84 +++++++++++++++++-- 1 file changed, 77 insertions(+), 7 deletions(-) diff --git a/src/libraries/System.Console/ref/System.Console.cs b/src/libraries/System.Console/ref/System.Console.cs index e0dd53846f457..d7f2a0f1e7276 100644 --- a/src/libraries/System.Console/ref/System.Console.cs +++ b/src/libraries/System.Console/ref/System.Console.cs @@ -8,51 +8,112 @@ namespace System { public static partial class Console { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor BackgroundColor { get { throw null; } set { } } - public static int BufferHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } - public static int BufferWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int BufferHeight + { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + get { throw null; } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + set { } + } + public static int BufferWidth + { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + get { throw null; } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + set { } + } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool CapsLock { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorLeft { get { throw null; } set { } } - public static int CursorSize { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int CursorSize + { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + get { throw null; } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + set { } + } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorTop { get { throw null; } set { } } - public static bool CursorVisible { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + public static bool CursorVisible + { + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + get { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + set { } + } public static System.IO.TextWriter Error { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor ForegroundColor { get { throw null; } set { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.TextReader In { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.Text.Encoding InputEncoding { get { throw null; } set { } } public static bool IsErrorRedirected { get { throw null; } } public static bool IsInputRedirected { get { throw null; } } public static bool IsOutputRedirected { get { throw null; } } public static bool KeyAvailable { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowHeight { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowWidth { get { throw null; } } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool NumberLock { get { throw null; } } public static System.IO.TextWriter Out { get { throw null; } } public static System.Text.Encoding OutputEncoding { get { throw null; } set { } } - public static string Title { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + public static string Title + { + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + get { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + set { } + } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static bool TreatControlCAsInput { get { throw null; } set { } } - public static int WindowHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int WindowHeight + { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + get { throw null; } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + set { } + } public static int WindowLeft { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } public static int WindowTop { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } - public static int WindowWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int WindowWidth + { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] + get { throw null; } + [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] + set { } + } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static event System.ConsoleCancelEventHandler? CancelKeyPress { add { } remove { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void Beep() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void Beep(int frequency, int duration) { } public static void Clear() { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static (int Left, int Top) GetCursorPosition() { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] @@ -61,27 +122,36 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, System.ConsoleColor sourceForeColor, System.ConsoleColor sourceBackColor) { } public static System.IO.Stream OpenStandardError() { throw null; } public static System.IO.Stream OpenStandardError(int bufferSize) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput(int bufferSize) { throw null; } public static System.IO.Stream OpenStandardOutput() { throw null; } public static System.IO.Stream OpenStandardOutput(int bufferSize) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int Read() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey(bool intercept) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static string? ReadLine() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void ResetColor() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void SetBufferSize(int width, int height) { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetCursorPosition(int left, int top) { } public static void SetError(System.IO.TextWriter newError) { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetIn(System.IO.TextReader newIn) { } public static void SetOut(System.IO.TextWriter newOut) { } From 6c198f92069f62391bcd09e8e047488395499a70 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Fri, 9 Apr 2021 14:42:22 +0300 Subject: [PATCH 03/10] Fix warnings --- .../ref/Microsoft.Extensions.Logging.Console.cs | 2 ++ .../src/AnsiParsingLogConsole.cs | 2 ++ .../src/ConsoleLoggerExtensions.cs | 3 +++ .../src/ConsoleLoggerProvider.cs | 1 + 4 files changed, 8 insertions(+) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 4cca93a0012af..225681bbcb7a1 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -6,6 +6,7 @@ namespace Microsoft.Extensions.Logging { + [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static partial class ConsoleLoggerExtensions { @@ -64,6 +65,7 @@ public ConsoleLoggerOptions() { } [System.ObsoleteAttribute("ConsoleLoggerOptions.UseUtcTimestamp has been deprecated. Please use ConsoleFormatterOptions.UseUtcTimestamp instead.", false)] public bool UseUtcTimestamp { get { throw null; } set { } } } + [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [Microsoft.Extensions.Logging.ProviderAliasAttribute("Console")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs index 25c3218a0895d..09ea5af1d1fd7 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs @@ -3,10 +3,12 @@ using System; using System.IO; +using System.Runtime.InteropServices; using System.Runtime.Versioning; namespace Microsoft.Extensions.Logging.Console { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] internal sealed class AnsiParsingLogConsole : IConsole { diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs index 372933b97e3d0..30a83c8fecf5b 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs @@ -13,6 +13,7 @@ namespace Microsoft.Extensions.Logging { + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static class ConsoleLoggerExtensions { @@ -156,6 +157,7 @@ private static ILoggingBuilder AddFormatterWithName(this ILoggingBuilder builder } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] internal sealed class ConsoleLoggerFormatterConfigureOptions : ConfigureFromConfigurationOptions where TOptions : ConsoleFormatterOptions @@ -167,6 +169,7 @@ public ConsoleLoggerFormatterConfigureOptions(ILoggerProviderConfiguration : ConfigurationChangeTokenSource where TOptions : ConsoleFormatterOptions diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index 3c6d60e2f4158..e16a0abcdf057 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -13,6 +13,7 @@ namespace Microsoft.Extensions.Logging.Console /// /// A provider of instances. /// + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] [ProviderAlias("Console")] public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope From 429e0e6bd2d697f3b3443775671a3c138bcf9cbb Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Tue, 13 Apr 2021 14:22:26 +0300 Subject: [PATCH 04/10] Fix the build --- .../tests/TrimmingTests/AddConsoleFormatterTests.cs | 2 ++ src/libraries/tests.proj | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs b/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs index e12c7d7797783..838b1f4fb0297 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs @@ -17,8 +17,10 @@ static int Main(string[] args) IServiceCollection descriptors = new ServiceCollection(); descriptors.AddLogging(builder => { +#pragma warning disable CA1416 // Unsupported on Android builder.AddConsoleFormatter(); builder.AddConsole(o => { o.FormatterName = "custom"; }); +#pragma warning restore CA1416 }); ServiceProvider provider = descriptors.BuildServiceProvider(); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index dd9618608d408..27dd1df880710 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -28,6 +28,8 @@ + + From ca379c58323d03d05047abfdbecb29381bd860b7 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Thu, 15 Apr 2021 16:39:54 +0300 Subject: [PATCH 05/10] Move the up the platform check to make it visible for the analyzer; revert unnecessary annotations and warning suppressions --- .../ref/Microsoft.Extensions.Logging.Console.cs | 2 -- .../src/ConsoleLoggerExtensions.cs | 3 --- .../src/ConsoleLoggerProvider.cs | 3 +-- .../tests/TrimmingTests/AddConsoleFormatterTests.cs | 2 -- src/libraries/tests.proj | 2 -- 5 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs index 225681bbcb7a1..4cca93a0012af 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/ref/Microsoft.Extensions.Logging.Console.cs @@ -6,7 +6,6 @@ namespace Microsoft.Extensions.Logging { - [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static partial class ConsoleLoggerExtensions { @@ -65,7 +64,6 @@ public ConsoleLoggerOptions() { } [System.ObsoleteAttribute("ConsoleLoggerOptions.UseUtcTimestamp has been deprecated. Please use ConsoleFormatterOptions.UseUtcTimestamp instead.", false)] public bool UseUtcTimestamp { get { throw null; } set { } } } - [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [Microsoft.Extensions.Logging.ProviderAliasAttribute("Console")] public partial class ConsoleLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Microsoft.Extensions.Logging.ISupportExternalScope, System.IDisposable diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs index 30a83c8fecf5b..372933b97e3d0 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.cs @@ -13,7 +13,6 @@ namespace Microsoft.Extensions.Logging { - [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static class ConsoleLoggerExtensions { @@ -157,7 +156,6 @@ private static ILoggingBuilder AddFormatterWithName(this ILoggingBuilder builder } } - [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] internal sealed class ConsoleLoggerFormatterConfigureOptions : ConfigureFromConfigurationOptions where TOptions : ConsoleFormatterOptions @@ -169,7 +167,6 @@ public ConsoleLoggerFormatterConfigureOptions(ILoggerProviderConfiguration : ConfigurationChangeTokenSource where TOptions : ConsoleFormatterOptions diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index e16a0abcdf057..ec475ed02830e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -13,7 +13,6 @@ namespace Microsoft.Extensions.Logging.Console /// /// A provider of instances. /// - [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] [ProviderAlias("Console")] public class ConsoleLoggerProvider : ILoggerProvider, ISupportExternalScope @@ -48,7 +47,7 @@ public ConsoleLoggerProvider(IOptionsMonitor options, IEnu _optionsReloadToken = _options.OnChange(ReloadLoggerOptions); _messageQueue = new ConsoleLoggerProcessor(); - if (DoesConsoleSupportAnsi()) + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || DoesConsoleSupportAnsi()) { _messageQueue.Console = new AnsiLogConsole(); _messageQueue.ErrorConsole = new AnsiLogConsole(stdErr: true); diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs b/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs index 838b1f4fb0297..e12c7d7797783 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/tests/TrimmingTests/AddConsoleFormatterTests.cs @@ -17,10 +17,8 @@ static int Main(string[] args) IServiceCollection descriptors = new ServiceCollection(); descriptors.AddLogging(builder => { -#pragma warning disable CA1416 // Unsupported on Android builder.AddConsoleFormatter(); builder.AddConsole(o => { o.FormatterName = "custom"; }); -#pragma warning restore CA1416 }); ServiceProvider provider = descriptors.BuildServiceProvider(); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 27dd1df880710..dd9618608d408 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -28,8 +28,6 @@ - - From f4dcb8cb5c28f2fa0272971ade3090943056f70f Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Thu, 15 Apr 2021 16:45:53 +0300 Subject: [PATCH 06/10] Remove using --- .../src/AnsiParsingLogConsole.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs index 09ea5af1d1fd7..a5b9b125f1fd6 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/AnsiParsingLogConsole.cs @@ -3,7 +3,6 @@ using System; using System.IO; -using System.Runtime.InteropServices; using System.Runtime.Versioning; namespace Microsoft.Extensions.Logging.Console From 51c6610f8f0e1229fae41d43cb7bd30a0e022bc1 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Fri, 16 Apr 2021 15:11:18 +0300 Subject: [PATCH 07/10] Address the review comments --- .../src/ConsoleLoggerProvider.cs | 9 +++------ src/libraries/System.Console/src/System/Console.cs | 3 +++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index ec475ed02830e..a7ac0f7f86d87 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -47,7 +47,8 @@ public ConsoleLoggerProvider(IOptionsMonitor options, IEnu _optionsReloadToken = _options.OnChange(ReloadLoggerOptions); _messageQueue = new ConsoleLoggerProcessor(); - if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || DoesConsoleSupportAnsi()) + // TODO update when https://github.com/dotnet/runtime/issues/44922 implemented + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) || DoesWindowsConsoleSupportAnsi()) { _messageQueue.Console = new AnsiLogConsole(); _messageQueue.ErrorConsole = new AnsiLogConsole(stdErr: true); @@ -59,12 +60,8 @@ public ConsoleLoggerProvider(IOptionsMonitor options, IEnu } } - private static bool DoesConsoleSupportAnsi() + private static bool DoesWindowsConsoleSupportAnsi() { - if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - return true; - } // for Windows, check the console mode var stdOutHandle = Interop.Kernel32.GetStdHandle(Interop.Kernel32.STD_OUTPUT_HANDLE); if (!Interop.Kernel32.GetConsoleMode(stdOutHandle, out int consoleMode)) diff --git a/src/libraries/System.Console/src/System/Console.cs b/src/libraries/System.Console/src/System/Console.cs index 58ae5a9496f1e..c762d7e0ef9e2 100644 --- a/src/libraries/System.Console/src/System/Console.cs +++ b/src/libraries/System.Console/src/System/Console.cs @@ -420,6 +420,7 @@ public static bool CursorVisible set { ConsolePal.CursorVisible = value; } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static int CursorLeft { @@ -427,6 +428,7 @@ public static int CursorLeft set { SetCursorPosition(value, CursorTop); } } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static int CursorTop { @@ -552,6 +554,7 @@ public static Stream OpenStandardInput() return ConsolePal.OpenStandardInput(); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static Stream OpenStandardInput(int bufferSize) { From 24bed468d2e14173f75987406124aff67fe2b0a6 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Fri, 16 Apr 2021 15:12:04 +0300 Subject: [PATCH 08/10] Revert manual ref-change --- .../System.Console/ref/System.Console.cs | 84 ++----------------- 1 file changed, 7 insertions(+), 77 deletions(-) diff --git a/src/libraries/System.Console/ref/System.Console.cs b/src/libraries/System.Console/ref/System.Console.cs index d7f2a0f1e7276..e0dd53846f457 100644 --- a/src/libraries/System.Console/ref/System.Console.cs +++ b/src/libraries/System.Console/ref/System.Console.cs @@ -8,112 +8,51 @@ namespace System { public static partial class Console { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor BackgroundColor { get { throw null; } set { } } - public static int BufferHeight - { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - get { throw null; } - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - set { } - } - public static int BufferWidth - { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - get { throw null; } - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - set { } - } + public static int BufferHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int BufferWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool CapsLock { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorLeft { get { throw null; } set { } } - public static int CursorSize - { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - get { throw null; } - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - set { } - } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + public static int CursorSize { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorTop { get { throw null; } set { } } - public static bool CursorVisible - { - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - get { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - set { } - } + public static bool CursorVisible { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } public static System.IO.TextWriter Error { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor ForegroundColor { get { throw null; } set { } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.TextReader In { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.Text.Encoding InputEncoding { get { throw null; } set { } } public static bool IsErrorRedirected { get { throw null; } } public static bool IsInputRedirected { get { throw null; } } public static bool IsOutputRedirected { get { throw null; } } public static bool KeyAvailable { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowHeight { get { throw null; } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowWidth { get { throw null; } } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool NumberLock { get { throw null; } } public static System.IO.TextWriter Out { get { throw null; } } public static System.Text.Encoding OutputEncoding { get { throw null; } set { } } - public static string Title - { - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - get { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - set { } - } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + public static string Title { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static bool TreatControlCAsInput { get { throw null; } set { } } - public static int WindowHeight - { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - get { throw null; } - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - set { } - } + public static int WindowHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } public static int WindowLeft { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } public static int WindowTop { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } - public static int WindowWidth - { - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] - get { throw null; } - [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] - set { } - } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] + public static int WindowWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static event System.ConsoleCancelEventHandler? CancelKeyPress { add { } remove { } } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void Beep() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void Beep(int frequency, int duration) { } public static void Clear() { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static (int Left, int Top) GetCursorPosition() { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] @@ -122,36 +61,27 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, System.ConsoleColor sourceForeColor, System.ConsoleColor sourceBackColor) { } public static System.IO.Stream OpenStandardError() { throw null; } public static System.IO.Stream OpenStandardError(int bufferSize) { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput() { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput(int bufferSize) { throw null; } public static System.IO.Stream OpenStandardOutput() { throw null; } public static System.IO.Stream OpenStandardOutput(int bufferSize) { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int Read() { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey() { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey(bool intercept) { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static string? ReadLine() { throw null; } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void ResetColor() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void SetBufferSize(int width, int height) { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetCursorPosition(int left, int top) { } public static void SetError(System.IO.TextWriter newError) { } - [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetIn(System.IO.TextReader newIn) { } public static void SetOut(System.IO.TextWriter newOut) { } From 483e81be6c9ea7f3ecd11b424f9073bdb57b8263 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Fri, 16 Apr 2021 15:40:10 +0300 Subject: [PATCH 09/10] Re-generate the ref-part --- .../System.Console/ref/System.Console.cs | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/libraries/System.Console/ref/System.Console.cs b/src/libraries/System.Console/ref/System.Console.cs index e0dd53846f457..c58cd0a8797c1 100644 --- a/src/libraries/System.Console/ref/System.Console.cs +++ b/src/libraries/System.Console/ref/System.Console.cs @@ -8,51 +8,64 @@ namespace System { public static partial class Console { + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor BackgroundColor { get { throw null; } set { } } - public static int BufferHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } - public static int BufferWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int BufferHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int BufferWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool CapsLock { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorLeft { get { throw null; } set { } } - public static int CursorSize { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int CursorSize { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int CursorTop { get { throw null; } set { } } - public static bool CursorVisible { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + public static bool CursorVisible { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } public static System.IO.TextWriter Error { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleColor ForegroundColor { get { throw null; } set { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.TextReader In { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.Text.Encoding InputEncoding { get { throw null; } set { } } public static bool IsErrorRedirected { get { throw null; } } public static bool IsInputRedirected { get { throw null; } } public static bool IsOutputRedirected { get { throw null; } } public static bool KeyAvailable { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowHeight { get { throw null; } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int LargestWindowWidth { get { throw null; } } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static bool NumberLock { get { throw null; } } public static System.IO.TextWriter Out { get { throw null; } } - public static System.Text.Encoding OutputEncoding { get { throw null; } set { } } - public static string Title { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + public static System.Text.Encoding OutputEncoding { get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] set { } } + public static string Title { [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] get { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] set { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static bool TreatControlCAsInput { get { throw null; } set { } } - public static int WindowHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int WindowHeight { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } public static int WindowLeft { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } public static int WindowTop { get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } - public static int WindowWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + public static int WindowWidth { [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android"), System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] get { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] set { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static event System.ConsoleCancelEventHandler? CancelKeyPress { add { } remove { } } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void Beep() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void Beep(int frequency, int duration) { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] public static void Clear() { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static (int Left, int Top) GetCursorPosition() { throw null; } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] @@ -61,24 +74,30 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, System.ConsoleColor sourceForeColor, System.ConsoleColor sourceBackColor) { } public static System.IO.Stream OpenStandardError() { throw null; } public static System.IO.Stream OpenStandardError(int bufferSize) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.IO.Stream OpenStandardInput(int bufferSize) { throw null; } public static System.IO.Stream OpenStandardOutput() { throw null; } public static System.IO.Stream OpenStandardOutput(int bufferSize) { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int Read() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey(bool intercept) { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static string? ReadLine() { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void ResetColor() { } [System.Runtime.Versioning.SupportedOSPlatformAttribute("windows")] public static void SetBufferSize(int width, int height) { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetCursorPosition(int left, int top) { } public static void SetError(System.IO.TextWriter newError) { } From e8927bfd1e7ba1aa9ee47fde62bb6e31d56c14c0 Mon Sep 17 00:00:00 2001 From: Maxim Lipnin Date: Mon, 19 Apr 2021 10:17:57 +0300 Subject: [PATCH 10/10] Annotate SetIn, Read, and ReadLine methods --- src/libraries/System.Console/ref/System.Console.cs | 3 +++ src/libraries/System.Console/src/System/Console.cs | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/libraries/System.Console/ref/System.Console.cs b/src/libraries/System.Console/ref/System.Console.cs index c58cd0a8797c1..b73c7c7dd5567 100644 --- a/src/libraries/System.Console/ref/System.Console.cs +++ b/src/libraries/System.Console/ref/System.Console.cs @@ -82,6 +82,7 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth public static System.IO.Stream OpenStandardInput(int bufferSize) { throw null; } public static System.IO.Stream OpenStandardOutput() { throw null; } public static System.IO.Stream OpenStandardOutput(int bufferSize) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static int Read() { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] @@ -90,6 +91,7 @@ public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static System.ConsoleKeyInfo ReadKey(bool intercept) { throw null; } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static string? ReadLine() { throw null; } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] @@ -101,6 +103,7 @@ public static void SetBufferSize(int width, int height) { } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetCursorPosition(int left, int top) { } public static void SetError(System.IO.TextWriter newError) { } + [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("android")] [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public static void SetIn(System.IO.TextReader newIn) { } public static void SetOut(System.IO.TextWriter newOut) { } diff --git a/src/libraries/System.Console/src/System/Console.cs b/src/libraries/System.Console/src/System/Console.cs index c762d7e0ef9e2..7931352b53832 100644 --- a/src/libraries/System.Console/src/System/Console.cs +++ b/src/libraries/System.Console/src/System/Console.cs @@ -596,6 +596,7 @@ public static Stream OpenStandardError(int bufferSize) return ConsolePal.OpenStandardError(); } + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static void SetIn(TextReader newIn) { @@ -643,6 +644,7 @@ private static void CheckNonNull(object obj, string paramName) // the inlined console writelines from them. // [MethodImplAttribute(MethodImplOptions.NoInlining)] + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static int Read() { @@ -650,6 +652,7 @@ public static int Read() } [MethodImplAttribute(MethodImplOptions.NoInlining)] + [UnsupportedOSPlatform("android")] [UnsupportedOSPlatform("browser")] public static string? ReadLine() {