diff --git a/.globalconfig b/.globalconfig index e0dd4ccb9e5..b1ab5fdfc9c 100644 --- a/.globalconfig +++ b/.globalconfig @@ -1486,7 +1486,7 @@ dotnet_diagnostic.IDE0082.severity = warning # IDE0083: UseNotPattern # https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0083 -dotnet_diagnostic.IDE0083.severity = silent +dotnet_diagnostic.IDE0083.severity = warning # IDE0084: UseIsNotExpression # https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0084 diff --git a/src/System.Management.Automation/engine/parser/Compiler.cs b/src/System.Management.Automation/engine/parser/Compiler.cs index 5ce6a6c6dc8..0a2c1edcd42 100644 --- a/src/System.Management.Automation/engine/parser/Compiler.cs +++ b/src/System.Management.Automation/engine/parser/Compiler.cs @@ -5975,12 +5975,12 @@ public object VisitBinaryExpression(BinaryExpressionAst binaryExpressionAst) private static Expression GetLikeRHSOperand(WildcardOptions options, Expression expr) { - if (!(expr is ConstantExpression constExpr)) + if (expr is not ConstantExpression constExpr) { return expr; } - if (!(constExpr.Value is string val)) + if (constExpr.Value is not string val) { return expr; } diff --git a/src/System.Management.Automation/engine/parser/ConstantValues.cs b/src/System.Management.Automation/engine/parser/ConstantValues.cs index d580148ddd2..76a72f7c158 100644 --- a/src/System.Management.Automation/engine/parser/ConstantValues.cs +++ b/src/System.Management.Automation/engine/parser/ConstantValues.cs @@ -170,7 +170,7 @@ public object VisitPipeline(PipelineAst pipelineAst) private static bool IsNullDivisor(ExpressionAst operand) { - if (!(operand is VariableExpressionAst varExpr)) + if (operand is not VariableExpressionAst varExpr) { return false; } @@ -281,7 +281,7 @@ public object VisitMemberExpression(MemberExpressionAst memberExpressionAst) return false; } - if (!(memberExpressionAst.Member is StringConstantExpressionAst member)) + if (memberExpressionAst.Member is not StringConstantExpressionAst member) { return false; } diff --git a/src/System.Management.Automation/engine/parser/Parser.cs b/src/System.Management.Automation/engine/parser/Parser.cs index 1592d2e7e7d..c9d440bda9e 100644 --- a/src/System.Management.Automation/engine/parser/Parser.cs +++ b/src/System.Management.Automation/engine/parser/Parser.cs @@ -737,7 +737,7 @@ internal static bool TryParseAsConstantHashtable(string input, out Hashtable res return false; } - if (!(statements[0] is PipelineAst pipelineAst)) + if (statements[0] is not PipelineAst pipelineAst) { return false; } @@ -748,7 +748,7 @@ internal static bool TryParseAsConstantHashtable(string input, out Hashtable res return false; } - if (!(expr is HashtableAst hashTableAst)) + if (expr is not HashtableAst hashTableAst) { return false; } diff --git a/src/System.Management.Automation/engine/parser/Position.cs b/src/System.Management.Automation/engine/parser/Position.cs index 9e1363e4a53..3012fa34703 100644 --- a/src/System.Management.Automation/engine/parser/Position.cs +++ b/src/System.Management.Automation/engine/parser/Position.cs @@ -580,7 +580,7 @@ internal sealed class EmptyScriptExtent : IScriptExtent public override bool Equals(object obj) { - if (!(obj is IScriptExtent otherPosition)) + if (obj is not IScriptExtent otherPosition) { return false; } diff --git a/src/System.Management.Automation/engine/parser/SemanticChecks.cs b/src/System.Management.Automation/engine/parser/SemanticChecks.cs index 4a2a3bb626c..fcc27217e67 100644 --- a/src/System.Management.Automation/engine/parser/SemanticChecks.cs +++ b/src/System.Management.Automation/engine/parser/SemanticChecks.cs @@ -697,7 +697,7 @@ public override AstVisitAction VisitContinueStatement(ContinueStatementAst conti private void CheckForReturnStatement(ReturnStatementAst ast) { - if (!(_memberScopeStack.Peek() is FunctionMemberAst functionMemberAst)) + if (_memberScopeStack.Peek() is not FunctionMemberAst functionMemberAst) { return; } @@ -1631,7 +1631,7 @@ private static void LookupRequiredMembers(Parser parser, TypeDefinitionAst typeD foreach (var baseType in typeDefinitionAst.BaseTypes) { - if (!(baseType.TypeName is TypeName baseTypeName)) + if (baseType.TypeName is not TypeName baseTypeName) { continue; } diff --git a/src/System.Management.Automation/engine/parser/TypeInferenceVisitor.cs b/src/System.Management.Automation/engine/parser/TypeInferenceVisitor.cs index a7744ac6411..d8287edbc13 100644 --- a/src/System.Management.Automation/engine/parser/TypeInferenceVisitor.cs +++ b/src/System.Management.Automation/engine/parser/TypeInferenceVisitor.cs @@ -336,7 +336,7 @@ internal void AddMembersByInferredTypeDefinitionAst( // iterate through bases/interfaces foreach (var baseType in typename.TypeDefinitionAst.BaseTypes) { - if (!(baseType.TypeName is TypeName baseTypeName)) + if (baseType.TypeName is not TypeName baseTypeName) { continue; } @@ -1914,7 +1914,7 @@ private IEnumerable InferTypesFrom(MemberExpressionAst memberExpress var expression = memberExpressionAst.Expression; // If the member name isn't simple, don't even try. - if (!(memberCommandElement is StringConstantExpressionAst memberAsStringConst)) + if (memberCommandElement is not StringConstantExpressionAst memberAsStringConst) { return Array.Empty(); } @@ -2239,7 +2239,7 @@ private PSTypeName[] GetExpressionType(ExpressionAst expression, bool isStatic) PSTypeName[] exprType; if (isStatic) { - if (!(expression is TypeExpressionAst exprAsType)) + if (expression is not TypeExpressionAst exprAsType) { return null; } @@ -2814,7 +2814,7 @@ internal static IEnumerable GetInferredEnumeratedTypes(IEnumerable

inferredTypes) { var argumentPair = argument as AstPair; - if (!(argumentPair?.Argument is ScriptBlockExpressionAst scriptBlockExpressionAst)) + if (argumentPair?.Argument is not ScriptBlockExpressionAst scriptBlockExpressionAst) { return; } diff --git a/src/System.Management.Automation/engine/parser/TypeResolver.cs b/src/System.Management.Automation/engine/parser/TypeResolver.cs index 73d44e94fbe..8650a17eb70 100644 --- a/src/System.Management.Automation/engine/parser/TypeResolver.cs +++ b/src/System.Management.Automation/engine/parser/TypeResolver.cs @@ -613,7 +613,7 @@ public override bool Equals(object obj) if (object.ReferenceEquals(this, obj)) return true; - if (!(obj is TypeResolutionState other)) + if (obj is not TypeResolutionState other) return false; if (this.attribute != other.attribute) diff --git a/src/System.Management.Automation/engine/parser/ast.cs b/src/System.Management.Automation/engine/parser/ast.cs index ba5c48a2752..f0377a87044 100644 --- a/src/System.Management.Automation/engine/parser/ast.cs +++ b/src/System.Management.Automation/engine/parser/ast.cs @@ -7376,7 +7376,7 @@ internal virtual bool ShouldPreserveOutputInCaseOfException() PSTraceSource.NewInvalidOperationException(); } - if (!(this.Parent is CommandExpressionAst commandExpr)) + if (this.Parent is not CommandExpressionAst commandExpr) { return false; } @@ -7889,7 +7889,7 @@ Expression IAssignableValue.SetValue(Compiler compiler, Expression rhs) var attributes = GetAttributes(); var assignableValue = GetActualAssignableAst().GetAssignableValue(); - if (!(assignableValue is VariableExpressionAst variableExpr)) + if (assignableValue is not VariableExpressionAst variableExpr) { return assignableValue.SetValue(compiler, Compiler.ConvertValue(rhs, attributes)); } @@ -8666,7 +8666,7 @@ public override string ToString() ///

public override bool Equals(object obj) { - if (!(obj is TypeName other)) + if (obj is not TypeName other) return false; if (!_name.Equals(other._name, StringComparison.OrdinalIgnoreCase)) @@ -8994,7 +8994,7 @@ public override string ToString() /// public override bool Equals(object obj) { - if (!(obj is GenericTypeName other)) + if (obj is not GenericTypeName other) return false; if (!TypeName.Equals(other.TypeName)) @@ -9219,7 +9219,7 @@ public override string ToString() /// public override bool Equals(object obj) { - if (!(obj is ArrayTypeName other)) + if (obj is not ArrayTypeName other) return false; return ElementType.Equals(other.ElementType) && Rank == other.Rank; @@ -9320,7 +9320,7 @@ public override string ToString() /// public override bool Equals(object obj) { - if (!(obj is ReflectionTypeName other)) + if (obj is not ReflectionTypeName other) return false; return _type == other._type; } diff --git a/src/System.Management.Automation/help/CommandHelpProvider.cs b/src/System.Management.Automation/help/CommandHelpProvider.cs index 15af80745db..351bbc036c7 100644 --- a/src/System.Management.Automation/help/CommandHelpProvider.cs +++ b/src/System.Management.Automation/help/CommandHelpProvider.cs @@ -765,7 +765,7 @@ private void ProcessUserDefinedHelpData(string mshSnapInId, UserDefinedHelpData if (helpInfo == null) return; - if (!(helpInfo is MamlCommandHelpInfo commandHelpInfo)) + if (helpInfo is not MamlCommandHelpInfo commandHelpInfo) return; commandHelpInfo.AddUserDefinedData(userDefinedHelpData); diff --git a/src/System.Management.Automation/help/ProviderContext.cs b/src/System.Management.Automation/help/ProviderContext.cs index 817e2b3f0e6..a10f1eb4088 100644 --- a/src/System.Management.Automation/help/ProviderContext.cs +++ b/src/System.Management.Automation/help/ProviderContext.cs @@ -108,7 +108,7 @@ internal MamlCommandHelpInfo GetProviderSpecificHelpInfo(string helpItemName) // Does the provider know how to generate MAML. CmdletProvider cmdletProvider = providerInfo.CreateInstance(); - if (!(cmdletProvider is ICmdletProviderSupportsHelp provider)) + if (cmdletProvider is not ICmdletProviderSupportsHelp provider) { // Under JEA sessions the resolvedProviderPath will be null, we should allow get-help to continue. return null;