From 479f151bbba82f68ad25bcfc9f8e4d69eb511675 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sun, 7 Jul 2024 12:38:06 +1000 Subject: [PATCH] Fix code style warnings in satellite .NET projects --- .global.editorconfig.ini | 2 ++ ExternalCoreProjects/Virtu/Keyboard.cs | 2 ++ .../FeatureNotImplementedAnalyzer.cs | 3 ++- .../FirstOrDefaultOnStructAnalyzer.cs | 4 +++- .../BizHawk.Analyzer/HawkSourceAnalyzer.cs | 4 +++- .../UseNameofOperatorAnalyzer.cs | 2 +- .../UseTypeofOperatorAnalyzer.cs | 4 +++- .../DefaultSetterGenerator.cs | 2 +- ExternalProjects/NLua/NLua.csproj | 2 +- ExternalProjects/iso-parser/ISOParser.csproj | 1 + .../DATParser/NOINTROParser.cs | 2 +- ExternalToolProjects/DATParser/TOSECParser.cs | 2 +- ExternalToolProjects/DBMan/RomHasher.cs | 2 +- References/BizHawk.Analyzer.dll | Bin 33280 -> 33280 bytes References/BizHawk.SrcGen.SettingsUtil.dll | Bin 12800 -> 13312 bytes 15 files changed, 22 insertions(+), 10 deletions(-) diff --git a/.global.editorconfig.ini b/.global.editorconfig.ini index 70e07c2666..de595ca19f 100644 --- a/.global.editorconfig.ini +++ b/.global.editorconfig.ini @@ -367,6 +367,8 @@ dotnet_diagnostic.MEN013.severity = silent dotnet_diagnostic.MEN014.severity = warning # Use Preferred Terms dotnet_diagnostic.MEN015.severity = silent +# Use object-oriented methods instead of top-level statements +dotnet_diagnostic.MEN016.severity = silent ## StyleCop spacing rules diff --git a/ExternalCoreProjects/Virtu/Keyboard.cs b/ExternalCoreProjects/Virtu/Keyboard.cs index c57ab44a90..ebfd49bb8d 100644 --- a/ExternalCoreProjects/Virtu/Keyboard.cs +++ b/ExternalCoreProjects/Virtu/Keyboard.cs @@ -141,7 +141,9 @@ namespace Jellyfish.Virtu Reset = 2305843009213693952UL, } +#pragma warning disable MA0104 // unlikely to conflict with System.Windows.Input.Keyboard public sealed class Keyboard +#pragma warning restore MA0104 { static Keyboard() { diff --git a/ExternalProjects/BizHawk.Analyzer/FeatureNotImplementedAnalyzer.cs b/ExternalProjects/BizHawk.Analyzer/FeatureNotImplementedAnalyzer.cs index fbdc535037..440bd0a3de 100644 --- a/ExternalProjects/BizHawk.Analyzer/FeatureNotImplementedAnalyzer.cs +++ b/ExternalProjects/BizHawk.Analyzer/FeatureNotImplementedAnalyzer.cs @@ -50,7 +50,8 @@ public sealed class FeatureNotImplementedAnalyzer : DiagnosticAnalyzer // else correct usage, do not flag } bool IncludesFNIAttribute(SyntaxList mds) - => mds.SelectMany(static als => als.Attributes).Any(aSyn => featureNotImplementedAttrSym.Matches(snac.SemanticModel.GetTypeInfo(aSyn).Type)); + => mds.SelectMany(static als => als.Attributes) + .Any(aSyn => featureNotImplementedAttrSym.Matches(snac.SemanticModel.GetTypeInfo(aSyn, snac.CancellationToken).Type)); void CheckBlockBody(BlockSyntax bs, Location location) { if (bs.Statements.Count is not 1) snac.ReportDiagnostic(Diagnostic.Create(DiagShouldThrowNIE, location, ERR_MSG_DOES_NOT_THROW)); diff --git a/ExternalProjects/BizHawk.Analyzer/FirstOrDefaultOnStructAnalyzer.cs b/ExternalProjects/BizHawk.Analyzer/FirstOrDefaultOnStructAnalyzer.cs index b0200d8d1c..5007b25d2f 100644 --- a/ExternalProjects/BizHawk.Analyzer/FirstOrDefaultOnStructAnalyzer.cs +++ b/ExternalProjects/BizHawk.Analyzer/FirstOrDefaultOnStructAnalyzer.cs @@ -43,7 +43,9 @@ public sealed class FirstOrDefaultOnStructAnalyzer : DiagnosticAnalyzer var operation = (IInvocationOperation) oac.Operation; var calledSym = operation.TargetMethod.ConstructedFrom; if (!(firstOrDefaultWithPredSym!.Matches(calledSym) || firstOrDefaultNoPredSym!.Matches(calledSym))) return; - var receiverExprType = operation.SemanticModel!.GetTypeInfo((CSharpSyntaxNode) operation.Arguments[0].Syntax).ConvertedType!; + var receiverExprType = operation.SemanticModel!.GetTypeInfo( + (CSharpSyntaxNode) operation.Arguments[0].Syntax, + oac.CancellationToken).ConvertedType!; var collectionElemType = receiverExprType switch { INamedTypeSymbol nts => nts.TypeArguments[0], diff --git a/ExternalProjects/BizHawk.Analyzer/HawkSourceAnalyzer.cs b/ExternalProjects/BizHawk.Analyzer/HawkSourceAnalyzer.cs index 5160baa5db..ea24450caa 100644 --- a/ExternalProjects/BizHawk.Analyzer/HawkSourceAnalyzer.cs +++ b/ExternalProjects/BizHawk.Analyzer/HawkSourceAnalyzer.cs @@ -128,7 +128,9 @@ public class HawkSourceAnalyzer : DiagnosticAnalyzer case AnonymousObjectCreationExpressionSyntax: snac.ReportDiagnostic(Diagnostic.Create(DiagNoAnonClasses, snac.Node.GetLocation())); break; - case AssignmentExpressionSyntax aes when IsDiscard(aes) && snac.SemanticModel.GetSymbolInfo(aes.Right).Symbol?.Kind is SymbolKind.Local: + case AssignmentExpressionSyntax aes: + if (!IsDiscard(aes)) break; + if (snac.SemanticModel.GetSymbolInfo(aes.Right, snac.CancellationToken).Symbol?.Kind is not SymbolKind.Local) break; snac.ReportDiagnostic(Diagnostic.Create(DiagNoDiscardingLocals, snac.Node.GetLocation())); break; case CollectionExpressionSyntax ces: diff --git a/ExternalProjects/BizHawk.Analyzer/UseNameofOperatorAnalyzer.cs b/ExternalProjects/BizHawk.Analyzer/UseNameofOperatorAnalyzer.cs index 31140b2d67..ebc018cfe0 100644 --- a/ExternalProjects/BizHawk.Analyzer/UseNameofOperatorAnalyzer.cs +++ b/ExternalProjects/BizHawk.Analyzer/UseNameofOperatorAnalyzer.cs @@ -52,7 +52,7 @@ public sealed class UseNameofOperatorAnalyzer : DiagnosticAnalyzer snac.ReportDiagnostic(Diagnostic.Create(DiagNoToStringOnType, toes.GetLocation(), toes.Type.GetText(), " in string interpolation")); break; case MemberAccessExpressionSyntax maes1: - var accessed = snac.SemanticModel.GetSymbolInfo(maes1.Name).Symbol; + var accessed = snac.SemanticModel.GetSymbolInfo(maes1.Name, snac.CancellationToken).Symbol; if (memberInfoDotNameSym.Matches(accessed)) { snac.ReportDiagnostic(Diagnostic.Create(DiagUseNameof, maes1.GetLocation(), toes.Type.GetText())); diff --git a/ExternalProjects/BizHawk.Analyzer/UseTypeofOperatorAnalyzer.cs b/ExternalProjects/BizHawk.Analyzer/UseTypeofOperatorAnalyzer.cs index 049364a2d3..db59f3bc2f 100644 --- a/ExternalProjects/BizHawk.Analyzer/UseTypeofOperatorAnalyzer.cs +++ b/ExternalProjects/BizHawk.Analyzer/UseTypeofOperatorAnalyzer.cs @@ -42,7 +42,9 @@ public sealed class UseTypeofOperatorAnalyzer : DiagnosticAnalyzer objectDotGetTypeSym ??= oac.Compilation.GetTypeByMetadataName("System.Object")!.GetMembers("GetType")[0]; if (!objectDotGetTypeSym.Matches(operation.TargetMethod)) return; if (operation.Instance.Syntax is not ThisExpressionSyntax and not IdentifierNameSyntax { Identifier.Text: "GetType" }) return; // called on something that isn't `this` - var enclosingType = operation.SemanticModel!.GetDeclaredSymbol(((CSharpSyntaxNode) operation.Syntax).EnclosingTypeDeclarationSyntax()!)!; + var enclosingType = operation.SemanticModel!.GetDeclaredSymbol( + ((CSharpSyntaxNode) operation.Syntax).EnclosingTypeDeclarationSyntax()!, + oac.CancellationToken)!; oac.ReportDiagnostic(Diagnostic.Create(enclosingType.IsSealed ? DiagNoGetTypeOnThisSealed : DiagNoGetTypeOnThis, operation.Syntax.GetLocation(), enclosingType.Name)); }, OperationKind.Invocation); diff --git a/ExternalProjects/BizHawk.SrcGen.SettingsUtil/DefaultSetterGenerator.cs b/ExternalProjects/BizHawk.SrcGen.SettingsUtil/DefaultSetterGenerator.cs index ff81f112d8..bfb95e166e 100644 --- a/ExternalProjects/BizHawk.SrcGen.SettingsUtil/DefaultSetterGenerator.cs +++ b/ExternalProjects/BizHawk.SrcGen.SettingsUtil/DefaultSetterGenerator.cs @@ -99,7 +99,7 @@ namespace BizHawk.Common if (cds.AttributeLists.SelectMany(e => e.Attributes) .Any(e => e.Name.NormalizeWhitespace().ToFullString() == "CoreSettings")) { - var symbol = semanticModel.GetDeclaredSymbol(cds); + var symbol = semanticModel.GetDeclaredSymbol(cds, context.CancellationToken); if (symbol is not null) // probably never happens? { CreateDefaultSetter(source, symbol); diff --git a/ExternalProjects/NLua/NLua.csproj b/ExternalProjects/NLua/NLua.csproj index 48f491dd8a..5e06fa4786 100644 --- a/ExternalProjects/NLua/NLua.csproj +++ b/ExternalProjects/NLua/NLua.csproj @@ -22,7 +22,7 @@ - $(NoWarn);IDE0005 + $(NoWarn);IDE0005;SA1514 disable true diff --git a/ExternalProjects/iso-parser/ISOParser.csproj b/ExternalProjects/iso-parser/ISOParser.csproj index 094f54bdcb..f29a363a6c 100644 --- a/ExternalProjects/iso-parser/ISOParser.csproj +++ b/ExternalProjects/iso-parser/ISOParser.csproj @@ -4,6 +4,7 @@ + $(NoWarn);MA0060;SA1514 disable diff --git a/ExternalToolProjects/DATParser/NOINTROParser.cs b/ExternalToolProjects/DATParser/NOINTROParser.cs index 472669ccd0..704a41fc3a 100644 --- a/ExternalToolProjects/DATParser/NOINTROParser.cs +++ b/ExternalToolProjects/DATParser/NOINTROParser.cs @@ -122,7 +122,7 @@ namespace BizHawk.DATTool string a = RemoveUnneededOptions(nameString); // process data contained in () - string[] d = a.ToString().Split('(', ')'); + var d = a.Split('(', ')'); if (d.Length > 0) { diff --git a/ExternalToolProjects/DATParser/TOSECParser.cs b/ExternalToolProjects/DATParser/TOSECParser.cs index a716516dc8..c10baed05c 100644 --- a/ExternalToolProjects/DATParser/TOSECParser.cs +++ b/ExternalToolProjects/DATParser/TOSECParser.cs @@ -128,7 +128,7 @@ namespace BizHawk.DATTool string a = RemoveUnneededOptions(nameString); // process data contained in () - string[] d = a.ToString().Split('(', ')'); + var d = a.Split('(', ')'); if (d.Length > 0) { diff --git a/ExternalToolProjects/DBMan/RomHasher.cs b/ExternalToolProjects/DBMan/RomHasher.cs index 12d0065840..dcdff196f3 100644 --- a/ExternalToolProjects/DBMan/RomHasher.cs +++ b/ExternalToolProjects/DBMan/RomHasher.cs @@ -63,7 +63,7 @@ namespace BizHawk.DBManTool // parse out modifiers var mods = new List(); - modifiers = modifiers.Replace(")", ";").Replace("]",";"); + modifiers = modifiers.Replace(')', ';').Replace(']', ';'); modifiers = modifiers.Replace("(", "").Replace("[", ""); var m_ = modifiers.Split(';'); foreach (var mi in m_) diff --git a/References/BizHawk.Analyzer.dll b/References/BizHawk.Analyzer.dll index fdf83f1b54141213c91b4d6682257778cd2a2fce..34b523c4ee2338b559ffe6af78e5e4793130ca62 100644 GIT binary patch delta 9468 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 Gdj1FajyGrk delta 9524 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 F{~ve~J?j7f diff --git a/References/BizHawk.SrcGen.SettingsUtil.dll b/References/BizHawk.SrcGen.SettingsUtil.dll index 926863c62bbcf8e537c9e9f7a0985ce7dca5ac9c..02a042e57e0d99b975399f402bfb09164f8cd172 100644 GIT binary patch delta 5318 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 delta 5032 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