From 38e8ac9b1337f0e6c8b8823d476964bf3cc83a79 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Thu, 5 Mar 2026 23:02:36 +0100 Subject: [PATCH] Fix warnings --- .../YesNt.Interpreter.Generator.csproj | 4 ++-- YesNt.Interpreter/Runtime/RuntimeInformation.cs | 2 ++ YesNt.Interpreter/Runtime/YesNtInterpreter.cs | 13 ++++++------- YesNt.Interpreter/Statements/CodeFlowStatements.cs | 1 + .../Statements/StringLiteralStatements.cs | 2 ++ YesNt.Interpreter/Utilities/FixedProcess.cs | 2 ++ YesNt.Interpreter/Utilities/StringExtensions.cs | 9 +++------ 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/YesNt.Interpreter.Generator/YesNt.Interpreter.Generator.csproj b/YesNt.Interpreter.Generator/YesNt.Interpreter.Generator.csproj index 8a70f90..82dcc9b 100644 --- a/YesNt.Interpreter.Generator/YesNt.Interpreter.Generator.csproj +++ b/YesNt.Interpreter.Generator/YesNt.Interpreter.Generator.csproj @@ -1,6 +1,6 @@ - + - netstandard2.1 + netstandard2.0 latest enable true diff --git a/YesNt.Interpreter/Runtime/RuntimeInformation.cs b/YesNt.Interpreter/Runtime/RuntimeInformation.cs index e099418..862735a 100644 --- a/YesNt.Interpreter/Runtime/RuntimeInformation.cs +++ b/YesNt.Interpreter/Runtime/RuntimeInformation.cs @@ -190,7 +190,9 @@ internal sealed class RuntimeInformation IsInFunction = false; IsLocalSearch = false; LineNumber = 0; +#pragma warning disable S2696 // internalTaskId is a shared counter intentionally incremented by each Reset call TaskId = ++internalTaskId; +#pragma warning restore S2696 } private void ParentRuntimeInformation_OnExit(string exitMessage, bool stopAllTasks) diff --git a/YesNt.Interpreter/Runtime/YesNtInterpreter.cs b/YesNt.Interpreter/Runtime/YesNtInterpreter.cs index 7d661ee..bb722e3 100644 --- a/YesNt.Interpreter/Runtime/YesNtInterpreter.cs +++ b/YesNt.Interpreter/Runtime/YesNtInterpreter.cs @@ -439,9 +439,11 @@ public class YesNtInterpreter string content = runtimeInfo.Lines[i].Content; List matchingHandlers = []; +#pragma warning disable S3267 // foreach + if is intentional here; LINQ .Where() would add overhead in this scan loop foreach (StatementHandler handler in statementHandlers) { if (IsPossibleMatch(content, handler)) +#pragma warning restore S3267 { matchingHandlers.Add(handler); @@ -458,14 +460,11 @@ public class YesNtInterpreter } // Track block ends - if (handler.Attribute.IsBlockEnd) + if (handler.Attribute.IsBlockEnd && openBlocks.TryGetValue(handler.Attribute.Name, out Stack endStack) && endStack.Count > 0) { - if (openBlocks.TryGetValue(handler.Attribute.Name, out Stack stack) && stack.Count > 0) - { - int startLine = stack.Pop(); - runtimeInfo.BlockBoundaries[startLine] = i; - runtimeInfo.BlockBoundaries[i] = startLine; - } + int startLine = endStack.Pop(); + runtimeInfo.BlockBoundaries[startLine] = i; + runtimeInfo.BlockBoundaries[i] = startLine; } // Track block intermediates (e.g., else:): pop the opener, record boundary, push self diff --git a/YesNt.Interpreter/Statements/CodeFlowStatements.cs b/YesNt.Interpreter/Statements/CodeFlowStatements.cs index 415f59e..ff6536d 100644 --- a/YesNt.Interpreter/Statements/CodeFlowStatements.cs +++ b/YesNt.Interpreter/Statements/CodeFlowStatements.cs @@ -170,6 +170,7 @@ internal class CodeFlowStatements : StatementRuntimeInformation [Statement("end_if", SearchMode.Exact, SpaceAround.None, ConsoleColor.Green, IsBlockEnd = true)] public void EndIf(string _) { + // Intentionally empty: end_if is a block-boundary marker only; no runtime action needed. } [Statement("while", SearchMode.StartOfLine, SpaceAround.End, ConsoleColor.Green, Priority = Priority.VeryLow, Separator = ":", BlockPair = "end_while")] diff --git a/YesNt.Interpreter/Statements/StringLiteralStatements.cs b/YesNt.Interpreter/Statements/StringLiteralStatements.cs index 8b3c161..709a524 100644 --- a/YesNt.Interpreter/Statements/StringLiteralStatements.cs +++ b/YesNt.Interpreter/Statements/StringLiteralStatements.cs @@ -19,6 +19,7 @@ internal class StringLiteralStatements : StatementRuntimeInformation StringBuilder output = new StringBuilder(args.Length); +#pragma warning disable S127 // i is intentionally advanced to track position within quoted literals and escape sequences for (int i = 0; i < args.Length; i++) { char current = args[i]; @@ -50,6 +51,7 @@ internal class StringLiteralStatements : StatementRuntimeInformation _ = literal.Append(ch); } +#pragma warning restore S127 if (!closed) { diff --git a/YesNt.Interpreter/Utilities/FixedProcess.cs b/YesNt.Interpreter/Utilities/FixedProcess.cs index 1d2cdc2..5fd9ce6 100644 --- a/YesNt.Interpreter/Utilities/FixedProcess.cs +++ b/YesNt.Interpreter/Utilities/FixedProcess.cs @@ -7,6 +7,7 @@ using System.Threading; namespace YesNt.Interpreter.Utilities; +/// Represents the method that handles the and events. public delegate void DataReceivedEventHandler(object sender, DataReceivedEventArgs e); internal delegate void UserCallBack(string data); @@ -81,6 +82,7 @@ internal class FixedProcess : Process } } +/// Provides data for the and events. public class DataReceivedEventArgs : EventArgs { internal string _data; diff --git a/YesNt.Interpreter/Utilities/StringExtensions.cs b/YesNt.Interpreter/Utilities/StringExtensions.cs index fb665c7..9b69484 100644 --- a/YesNt.Interpreter/Utilities/StringExtensions.cs +++ b/YesNt.Interpreter/Utilities/StringExtensions.cs @@ -25,8 +25,6 @@ namespace YesNt.Interpreter.Utilities; /// public static class StringExtensions { - private static readonly Dictionary reverseReplacementRules; - /// /// Gets the table that maps special characters to their safe-string escape codes. /// Keys are the original characters; values are the three-letter tilde codes. @@ -50,10 +48,7 @@ public static class StringExtensions {"", "\x01" + "emp" + "\x01" }, }; - static StringExtensions() - { - reverseReplacementRules = ReplacementRules.ToDictionary(x => x.Value, x => x.Key); - } + private static readonly Dictionary reverseReplacementRules = ReplacementRules.ToDictionary(x => x.Value, x => x.Key); /// /// Encodes a string into safe-string format so that special characters cannot accidentally @@ -109,6 +104,7 @@ public static class StringExtensions } StringBuilder output = new StringBuilder(stripped.Length); +#pragma warning disable S127 // i is intentionally advanced by 4 when a 5-char escape code is consumed for (int i = 0; i < stripped.Length; i++) { if (stripped[i] == '\x01' && i + 4 < stripped.Length && stripped[i + 4] == '\x01') @@ -124,6 +120,7 @@ public static class StringExtensions _ = output.Append(stripped[i]); } +#pragma warning restore S127 return output.ToString(); }