1 implementation of ConstantValue
Microsoft.CodeAnalysis (1)
Operations\Operation.cs (1)
94public Optional<object?> ConstantValue
418 references to ConstantValue
GenerateDocumentationAndConfigFiles (11)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (4)
63return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 68if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
436var numericValue = numericLiteralExpression.ConstantValue; 479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
ILLink.RoslynAnalyzer (6)
DataFlow\FeatureChecksVisitor.cs (3)
75if (GetConstantBool(operation.ConstantValue) is false) 86return GetConstantBool(literal.ConstantValue); 147return GetConstantBool(constantPattern.Value.ConstantValue);
TrimAnalysis\TrimAnalysisVisitor.cs (3)
199if (!operation.ConstantValue.HasValue && // Optimization - if there is already a constant value available, rely on the Visit(IOperation) instead 515if (operation.ConstantValue.HasValue) 517object? constantValue = operation.ConstantValue.Value;
Microsoft.Analyzers.Extra (8)
CallAnalysis\Fixers\LegacyLoggingFixer.FixDetails.cs (5)
48if (children[0].ConstantValue.HasValue) 50Message = children[0].ConstantValue.Value as string ?? string.Empty; 66_ = sb.Append(stringOp.ChildOperations.First().ConstantValue.Value as string); 110value = lit.ConstantValue.Value; 114value = fieldRef.ConstantValue.Value;
CallAnalysis\StartsEndsWith.cs (3)
46var s = op.Arguments[0].Value.ConstantValue.Value as string; 50if (op.Arguments.Length > 1 && op.Arguments[1].Value.ConstantValue.HasValue) 52var comp = (StringComparison)op.Arguments[1].Value.ConstantValue.Value!;
Microsoft.AspNetCore.Analyzers (2)
OptionsAnalyzer.cs (2)
28operation.Value.ConstantValue.HasValue && 33options.Add(new OptionsItem(property.Property, operation.Value.ConstantValue.Value));
Microsoft.AspNetCore.App.Analyzers (3)
Http\HeaderDictionaryIndexerAnalyzer.cs (1)
36literalOperation.ConstantValue.Value is string indexerValue)
RouteHandlers\DetectAmbiguousRoutes.cs (2)
258if (!Equals(literal.ConstantValue, otherLiteral.ConstantValue))
Microsoft.AspNetCore.Components.Analyzers (2)
VirtualizeItemComparerAnalyzer.cs (2)
93if (nameArg.Value.ConstantValue.HasValue && 94nameArg.Value.ConstantValue.Value is string paramName)
Microsoft.AspNetCore.Mvc.Api.Analyzers (2)
ActualApiResponseMetadataFactory.cs (1)
234if (operation.ConstantValue is { HasValue: true } constant)
ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer.cs (1)
169var constantValue = ((ILiteralOperation)operation).ConstantValue;
Microsoft.CodeAnalysis.Analyzers (41)
FixAnalyzers\FixerWithFixAllAnalyzer.cs (2)
268return argument.Value.ConstantValue.HasValue && argument.Value.ConstantValue.Value == null;
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer_IdRangeAndCategoryValidation.cs (4)
152if (argument.Value.ConstantValue.HasValue) 156argument.Value.ConstantValue.Value is string value) 164category = fieldReference.ConstantValue.HasValue && fieldReference.ConstantValue.Value is string value ? value : fieldReference.Field.Name;
MetaAnalyzers\DiagnosticDescriptorCreationAnalyzer.cs (17)
573firstParamArgument.Value.ConstantValue.HasValue && 574firstParamArgument.Value.ConstantValue.Value is string nameOfResource && 601invocation.Arguments[0].Value.ConstantValue.HasValue && 602invocation.Arguments[0].Value.ConstantValue.Value is string nameOfResource) 943if (operation.ConstantValue.HasValue && 944operation.ConstantValue.Value is string value && 1039if (argument.Value.ConstantValue.HasValue) 1041helpLink = argument.Value.ConstantValue.Value as string; 1075if (arrayCreation.DimensionSizes[0].ConstantValue.HasValue && 1076arrayCreation.DimensionSizes[0].ConstantValue.Value is int size && 1085arrayInitializer.ElementValues.All(element => element.ConstantValue.HasValue && element.ConstantValue.Value is string)) 1087customTags = arrayInitializer.ElementValues.SelectAsArray(element => (string)element.ConstantValue.Value!); 1120if (argument.Value.ConstantValue.HasValue && 1121argument.Value.ConstantValue.Value is bool value) 1205if (argument.Value.ConstantValue.HasValue && 1208argument.Value.ConstantValue.Value is string value)
MetaAnalyzers\Fixers\DefineDiagnosticDescriptorArgumentsCorrectlyFix.cs (4)
125literal.ConstantValue.HasValue && 126literal.ConstantValue.Value is string) 163RoslynDebug.Assert(literal.ConstantValue.HasValue && literal.ConstantValue.Value is string);
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (3)
125if (operation.ConstantValue.HasValue) 129distinctReferencedConstantsBuilder.Add(operation.ConstantValue.Value ?? s_nullConstantPlaceholder); 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute)));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (4)
63return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 68if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
436var numericValue = numericLiteralExpression.ConstantValue; 479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Microsoft.CodeAnalysis.AnalyzerUtilities (27)
src\1e7e9f16bf7f1945\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (3)
196if (operation.ConstantValue.HasValue) 198return operation.ConstantValue.Value != null ? 199ValueContentAbstractValue.Create(operation.ConstantValue.Value, valueTypeSymbol) :
src\66dd3055a1c91c38\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
758if (operation.ConstantValue.HasValue) 761operation.ConstantValue.Value == null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (3)
125if (operation.ConstantValue.HasValue) 129distinctReferencedConstantsBuilder.Add(operation.ConstantValue.Value ?? s_nullConstantPlaceholder); 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute)));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (4)
63return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 68if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (2)
111if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is int index)
src\roslyn\src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (9)
748branch.BranchValue.ConstantValue.HasValue) 750var alwaysTrue = (bool)branch.BranchValue.ConstantValue.Value!; 1283if (patternOperation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 1790if (operation is IConstantPatternOperation constant && constant.Value.ConstantValue.HasValue && constant.Value.ConstantValue.Value is null) 1808if (operation is INegatedPatternOperation negated && negated.Pattern is IConstantPatternOperation constant && constant.Value.ConstantValue.HasValue && constant.Value.ConstantValue.Value is null) 1857var leftConstantValueOpt = operation.LeftOperand.ConstantValue; 1859var rightConstantValueOpt = operation.RightOperand.ConstantValue;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
Microsoft.CodeAnalysis.CodeStyle (31)
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
192value.ConstantValue.HasValue) 679if (assignmentValue.ConstantValue.HasValue)
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
42ConstantValueEquals(constantPattern.Value.ConstantValue, value))
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (2)
47ConstantValueEquals(singleValueCase.Value.ConstantValue, value)) 52ConstantValueEquals(constantPattern.Value.ConstantValue, value))
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchExpressionHelpers.cs (3)
44if (arm.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 78if (operation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: not null and var value } }) 120if (pattern is IConstantPatternOperation { Value: IConversionOperation { ConstantValue: { HasValue: true, Value: null } } })
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchStatementHelpers.cs (6)
44if (patternCaseClause.Guard.ConstantValue.Value is true) 89if (value.ConstantValue is { HasValue: true, Value: null }) 119if (value is null || !value.ConstantValue.HasValue) 129if (value.ConstantValue.Value is null) 132var caseValue = IntegerUtilities.ToInt64(value.ConstantValue.Value); 197case ISingleValueCaseClauseOperation { Value: IConversionOperation { ConstantValue: { HasValue: true, Value: null } } }:
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
39if (operation.Pattern is not IConstantPatternOperation { Value.ConstantValue.Value: true or false } constantPattern) 127ConstantValue: { HasValue: true, Value: bool constValue }
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
136value.ConstantValue.HasValue && 137value.ConstantValue.Value is string stringValue)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
378if (!initializer.Value.ConstantValue.HasValue)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (3)
143if (invocation.Arguments[0].Value is ILiteralOperation { ConstantValue: { HasValue: true, Value: string value } } literal && 286? alignmentOp is { ConstantValue.HasValue: true } 323=> argument.Value.ConstantValue is { HasValue: true, Value: ' ' };
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (2)
165if (binaryOperation.LeftOperand.ConstantValue is { HasValue: true, Value: null }) 169else if (binaryOperation.RightOperand.ConstantValue is { HasValue: true, Value: null })
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\UseConditionalExpressionHelpers.cs (1)
118=> trueValue is ILiteralOperation { ConstantValue: { HasValue: true, Value: bool value } } && value == val;
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
264return operation.ConstantValue.HasValue && 265operation.ConstantValue.Value == null;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
Microsoft.CodeAnalysis.CodeStyle.Fixes (3)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
436var numericValue = numericLiteralExpression.ConstantValue; 479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Microsoft.CodeAnalysis.CSharp.CodeStyle (4)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (1)
332=> operation.ConstantValue is { HasValue: true, Value: int i } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (1)
163: operation.ConstantValue.HasValue;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
206if (element.ConstantValue.Value is not byte b)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
1148=> operation.ConstantValue is { HasValue: true, Value: null };
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (7)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (4)
705ConstantValue.HasValue: true, 706ConstantValue.Value: false, 889ConstantValue.HasValue: true, 890ConstantValue.Value: true,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (3)
220if (startOperation.ConstantValue.HasValue && 221startOperation.ConstantValue.Value is 0) 270=> (int)operation.ConstantValue.Value!; // Safe as we already confirmed this was an int when making the result.
Microsoft.CodeAnalysis.CSharp.Features (10)
src\roslyn\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.cs (1)
332=> operation.ConstantValue is { HasValue: true, Value: int i } &&
src\roslyn\src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (1)
163: operation.ConstantValue.HasValue;
src\roslyn\src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
206if (element.ConstantValue.Value is not byte b)
src\roslyn\src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (4)
705ConstantValue.HasValue: true, 706ConstantValue.Value: false, 889ConstantValue.HasValue: true, 890ConstantValue.Value: true,
src\roslyn\src\Analyzers\CSharp\CodeFixes\UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs (3)
220if (startOperation.ConstantValue.HasValue && 221startOperation.ConstantValue.Value is 0) 270=> (int)operation.ConstantValue.Value!; // Safe as we already confirmed this was an int when making the result.
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
1148=> operation.ConstantValue is { HasValue: true, Value: null };
Microsoft.CodeAnalysis.Features (28)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
448: operation.ConstantValue.HasValue;
src\9547feb31df4cc5d\AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
192value.ConstantValue.HasValue) 679if (assignmentValue.ConstantValue.HasValue)
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
42ConstantValueEquals(constantPattern.Value.ConstantValue, value))
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (2)
47ConstantValueEquals(singleValueCase.Value.ConstantValue, value)) 52ConstantValueEquals(constantPattern.Value.ConstantValue, value))
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchExpressionHelpers.cs (3)
44if (arm.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 78if (operation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: not null and var value } }) 120if (pattern is IConstantPatternOperation { Value: IConversionOperation { ConstantValue: { HasValue: true, Value: null } } })
src\roslyn\src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchStatementHelpers.cs (6)
44if (patternCaseClause.Guard.ConstantValue.Value is true) 89if (value.ConstantValue is { HasValue: true, Value: null }) 119if (value is null || !value.ConstantValue.HasValue) 129if (value.ConstantValue.Value is null) 132var caseValue = IntegerUtilities.ToInt64(value.ConstantValue.Value); 197case ISingleValueCaseClauseOperation { Value: IConversionOperation { ConstantValue: { HasValue: true, Value: null } } }:
src\roslyn\src\Analyzers\Core\Analyzers\RemoveRedundantEquality\AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
39if (operation.Pattern is not IConstantPatternOperation { Value.ConstantValue.Value: true or false } constantPattern) 127ConstantValue: { HasValue: true, Value: bool constValue }
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\SuppressMessageAttributeState.cs (2)
136value.ConstantValue.HasValue && 137value.ConstantValue.Value is string stringValue)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
378if (!initializer.Value.ConstantValue.HasValue)
src\roslyn\src\Analyzers\Core\Analyzers\SimplifyInterpolation\AbstractSimplifyInterpolationHelpers.cs (3)
143if (invocation.Arguments[0].Value is ILiteralOperation { ConstantValue: { HasValue: true, Value: string value } } literal && 286? alignmentOp is { ConstantValue.HasValue: true } 323=> argument.Value.ConstantValue is { HasValue: true, Value: ' ' };
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\ForAssignment\UseConditionalExpressionForAssignmentHelpers.cs (2)
165if (binaryOperation.LeftOperand.ConstantValue is { HasValue: true, Value: null }) 169else if (binaryOperation.RightOperand.ConstantValue is { HasValue: true, Value: null })
src\roslyn\src\Analyzers\Core\Analyzers\UseConditionalExpression\UseConditionalExpressionHelpers.cs (1)
118=> trueValue is ILiteralOperation { ConstantValue: { HasValue: true, Value: bool value } } && value == val;
src\roslyn\src\Analyzers\Core\Analyzers\UseThrowExpression\AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
264return operation.ConstantValue.HasValue && 265operation.ConstantValue.Value == null;
Microsoft.CodeAnalysis.NetAnalyzers (183)
Microsoft.CodeQuality.Analyzers\ApiDesignGuidelines\ImplementIDisposableCorrectly.cs (2)
494if (!literal.ConstantValue.HasValue || !expectedValue.Equals(literal.ConstantValue.Value))
Microsoft.CodeQuality.Analyzers\Maintainability\AvoidLengthCalculationWhenSlicingToEnd.cs (5)
149else if (operation is ILiteralOperation { ConstantValue.Value: int } literalOperation) 151constantSum += (int)literalOperation.ConstantValue.Value! * (isNegated ? -1 : 1) * constantsSign; 286(ILiteralOperation literalRef1, ILiteralOperation literalRef2) => literalRef1.ConstantValue.HasValue && literalRef1.ConstantValue.Value!.Equals(literalRef2.ConstantValue.Value),
Microsoft.CodeQuality.Analyzers\Maintainability\UseNameofInPlaceOfString.cs (2)
60|| !argument.Value.ConstantValue.HasValue 61|| argument.Value.ConstantValue.Value is not string stringText)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidDuplicateElementInitialization.cs (2)
88!argument.Value.ConstantValue.HasValue || 89argument.Value.ConstantValue.Value is not { } value)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidPropertySelfAssignment.cs (5)
95if (targetArg.ConstantValue.HasValue != valueArg.ConstantValue.HasValue) 100if (targetArg.ConstantValue.HasValue) 102return Equals(targetArg.ConstantValue.Value, valueArg.ConstantValue.Value);
Microsoft.CodeQuality.Analyzers\QualityGuidelines\DoNotInitializeUnnecessarily.cs (3)
115if (value is not ILiteralOperation literal || !literal.ConstantValue.HasValue) 123return literal.ConstantValue.Value is null && !IsNullSuppressed(literal); 129literal.ConstantValue.Value switch
Microsoft.CodeQuality.Analyzers\QualityGuidelines\UseLiteralsWhereAppropriate.cs (2)
77!fieldInitializerValue.ConstantValue.HasValue || 84var initializerValue = fieldInitializerValue.ConstantValue.Value;
Microsoft.NetCore.Analyzers\Data\ReviewSqlQueriesForSecurityVulnerabilities.cs (1)
218if (argumentValue.Type.SpecialType != SpecialType.System_String || !argumentValue.ConstantValue.HasValue)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (4)
399argument.ConstantValue.HasValue && 400argument.ConstantValue.Value is string platformName && 468!argument.Value.ConstantValue.HasValue) 1773pOperation.ConstantValue.HasValue &&
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.Value.cs (5)
75literal.ConstantValue.HasValue && 76literal.ConstantValue.Value is { } value) 90var info = new PlatformMethodValue(literal.ConstantValue.Value.ToString(), version, negated: false); 218if (argument.Value.ConstantValue.HasValue && 219argument.Value.ConstantValue.Value is int versionPart)
Microsoft.NetCore.Analyzers\InteropServices\UseValidPlatformString.cs (2)
160argument.ConstantValue.HasValue && 161argument.ConstantValue.Value is string platformName &&
Microsoft.NetCore.Analyzers\Performance\AvoidPotentiallyExpensiveCallWhenLogging.cs (12)
190IInterpolationOperation { Expression.ConstantValue.HasValue: false } or 191IInterpolatedStringTextOperation { Text.ConstantValue.HasValue: false }) 253arrayCreationOperation.DimensionSizes[0].ConstantValue.HasValue && 254arrayCreationOperation.DimensionSizes[0].ConstantValue.Value is int size && 316if (logLevelArgumentOperation?.Value.ConstantValue.HasValue == true) 318logLevel = (int)logLevelArgumentOperation.Value.ConstantValue.Value!; 332if (logLevelArgumentOperation?.Value.ConstantValue.HasValue == true) 334logLevel = (int)logLevelArgumentOperation.Value.ConstantValue.Value!; 362if (logLevelArgumentOperation.Value.ConstantValue.HasValue) 364logLevel = (int)logLevelArgumentOperation.Value.ConstantValue.Value!; 452if (isEnabledArgument.Value.ConstantValue.HasValue) 454int isEnabledLogLevel = (int)isEnabledArgument.Value.ConstantValue.Value!;
Microsoft.NetCore.Analyzers\Performance\ConstantExpectedAnalyzer.cs (1)
199if (v.ConstantValue is { } constantValue &&
Microsoft.NetCore.Analyzers\Performance\DoNotGuardCall.cs (5)
159argumentValue1.ConstantValue.HasValue != argumentValue2.ConstantValue.HasValue) 164if (argumentValue1.ConstantValue.HasValue) 166return Equals(argumentValue1.ConstantValue.Value, argumentValue2.ConstantValue.Value);
Microsoft.NetCore.Analyzers\Performance\PreferConvertToHexStringOverBitConverter.cs (4)
339bool oldValueIsConstantHyphenString = oldValue.ConstantValue.HasValue && 340oldValue.ConstantValue.Value is string oldValueString && 343bool newValueIsConstantNullOrEmptyString = newValue.ConstantValue.HasValue && 344newValue.ConstantValue.Value is string newValueString &&
Microsoft.NetCore.Analyzers\Performance\PreferDictionaryTryMethodsOverContainsKeyGuardAnalyzer.cs (4)
543if (targetReference.ConstantValue.HasValue && sourceReference.ConstantValue.HasValue) 545return sourceReference.ConstantValue.Equals(targetReference.ConstantValue);
Microsoft.NetCore.Analyzers\Performance\UseCompositeFormat.cs (1)
174if (!arg.ConstantValue.HasValue && !IsStringLiteralOrStaticReference(arg.Value, allowLiteral: true))
Microsoft.NetCore.Analyzers\Performance\UseCountProperly.cs (10)
343if (negatedPattern.Pattern is IRelationalPatternOperation { OperatorKind: BinaryOperatorKind.GreaterThan, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } } 344or IRelationalPatternOperation { OperatorKind: BinaryOperatorKind.GreaterThanOrEqual, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 1 } } }) 352return negatedPattern.Pattern is IConstantPatternOperation { Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } } 353or IRelationalPatternOperation { OperatorKind: BinaryOperatorKind.LessThanOrEqual, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } }; 357if (isPatternOperation.Pattern is IConstantPatternOperation { Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } }) 368if (relationalPattern is { OperatorKind: BinaryOperatorKind.LessThan, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 1 } } } 369or { OperatorKind: BinaryOperatorKind.LessThanOrEqual, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } }) 377return relationalPattern is { OperatorKind: BinaryOperatorKind.GreaterThan, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } } } 378or { OperatorKind: BinaryOperatorKind.GreaterThanOrEqual, Value: ILiteralOperation { ConstantValue: { HasValue: true, Value: 1 } } }; 741var comparandValueOpt = operation.ConstantValue;
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.cs (3)
310operation.ConstantValue.HasValue && 312operation.ConstantValue.Value is string stringValue) 354literal.ConstantValue.Value is not char charValue)
Microsoft.NetCore.Analyzers\Performance\UseSearchValues.Fixer.cs (1)
352if (!fieldReference.ConstantValue.HasValue)
Microsoft.NetCore.Analyzers\Performance\UseSpanClearInsteadOfFill.cs (1)
82var constantOpt = value.ConstantValue;
Microsoft.NetCore.Analyzers\Performance\UseStartsWithInsteadOfIndexOfComparisonWithZero.cs (1)
131if (right.ConstantValue is { HasValue: true, Value: 0 } &&
Microsoft.NetCore.Analyzers\Performance\UseStringContainsCharOverloadWithSingleCharactersAnalyzer.cs (2)
88&& literalOperation.ConstantValue.HasValue 89&& literalOperation.ConstantValue.Value is string constantString
Microsoft.NetCore.Analyzers\Performance\UseStringMethodCharOverloadWithSingleCharacters.cs (2)
217literalOperation.ConstantValue.HasValue && 218literalOperation.ConstantValue.Value is string constantString &&
Microsoft.NetCore.Analyzers\Runtime\AvoidRedundantRegexIsMatchBeforeMatch.cs (4)
564if (left.ConstantValue.HasValue && right.ConstantValue.HasValue) 566return Equals(left.ConstantValue.Value, right.ConstantValue.Value);
Microsoft.NetCore.Analyzers\Runtime\InstantiateArgumentExceptionsCorrectly.cs (2)
115string? value = argument.Value.ConstantValue.HasValue ? argument.Value.ConstantValue.Value as string : null;
Microsoft.NetCore.Analyzers\Runtime\InstantiateArgumentExceptionsCorrectly.Fixer.cs (1)
120literal.ConstantValue.Value is { } value)
Microsoft.NetCore.Analyzers\Runtime\LoggerMessageDefineAnalyzer.cs (1)
256case IOperation { ConstantValue: { HasValue: true, Value: string constantValue } }:
Microsoft.NetCore.Analyzers\Runtime\PreferConstCharOverConstUnitString.Fixer.cs (2)
105var unitString = (string)argumentLiteral.ConstantValue.Value!; 124string unitString = (string)variableInitializerOperation.Value.ConstantValue.Value!;
Microsoft.NetCore.Analyzers\Runtime\PreferConstCharOverConstUnitStringAnalyzer.cs (2)
76if (firstArgument.Value.ConstantValue.HasValue && firstArgument.Value.ConstantValue.Value is string unitString && unitString.Length == 1)
Microsoft.NetCore.Analyzers\Runtime\PreferStringContainsOverIndexOf.Fixer.cs (3)
112if (ordinalArgumentValue.ConstantValue.HasValue && 113ordinalArgumentValue.ConstantValue.Value is int intValue && 125SyntaxNode newIfCondition = binaryOperation.OperatorKind == BinaryOperatorKind.Equals && (int)otherOperation.ConstantValue.Value! == -1 ?
Microsoft.NetCore.Analyzers\Runtime\PreferStringContainsOverIndexOfAnalyzer.cs (2)
177if (otherOperand.ConstantValue.HasValue && otherOperand.ConstantValue.Value is int intValue)
Microsoft.NetCore.Analyzers\Runtime\ProvideCorrectArgumentsToFormattingMethods.cs (1)
73!(formatStringArgument.Value.ConstantValue.Value is string stringFormat))
Microsoft.NetCore.Analyzers\Runtime\SpecifyIFormatProvider.cs (2)
343!invocationOperation.Arguments[0].Value.ConstantValue.HasValue || 344invocationOperation.Arguments[0].Value.ConstantValue.Value is not string format)
Microsoft.NetCore.Analyzers\Runtime\TestForEmptyStringsUsingStringLength.cs (1)
148Optional<object?> constantValueOpt = expression.ConstantValue;
Microsoft.NetCore.Analyzers\Runtime\TestForNaNCorrectly.cs (2)
72!expr.ConstantValue.HasValue) 77object? value = expr.ConstantValue.Value;
Microsoft.NetCore.Analyzers\Runtime\UseExceptionThrowHelpers.cs (10)
325args.GetArgumentForParameterAtIndex(argumentIndex).Value.ConstantValue.HasValue; 359arg.Value.WalkDownConversion() is ILiteralOperation { ConstantValue.HasValue: true } literal && 360literal.ConstantValue.Value is null or ""; 371isPattern.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 445literalOperation.ConstantValue is { HasValue: true, Value: 0 } && 459patternOperation.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: 0 } }) 476if (binaryOperation.LeftOperand.WalkDownConversion() is ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } }) 484if (binaryOperation.RightOperand.WalkDownConversion() is ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } }) 496binaryOperation.RightOperand.WalkDownConversion() is ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } }) 509binaryOperation.LeftOperand.WalkDownConversion() is ILiteralOperation { ConstantValue: { HasValue: true, Value: 0 } })
Microsoft.NetCore.Analyzers\Runtime\UseSpanBasedStringConcat.Fixer.cs (2)
141literalOperation.ConstantValue.HasValue && 142literalOperation.ConstantValue.Value is { } literalValue)
Microsoft.NetCore.Analyzers\Runtime\UseStringEqualsOverStringCompare.cs (3)
197return operation is ILiteralOperation literal && literal.ConstantValue.Value is 0; 208if (invocation!.Arguments.FirstOrDefault()?.Value is ILiteralOperation { ConstantValue.Value: 0 }) 273literal.ConstantValue.Value is bool;
Microsoft.NetCore.Analyzers\Runtime\UseStringEqualsOverStringCompare.Fixer.cs (1)
194var stringComparisonEnumMemberName = ignoreCaseLiteral.ConstantValue.Value is true ?
Microsoft.NetCore.Analyzers\Security\DoNotAlwaysSkipTokenValidationInDelegates.cs (1)
214var constantValue = returnOperation.ReturnedValue.ConstantValue;
Microsoft.NetCore.Analyzers\Security\DoNotDisableCertificateValidation.cs (1)
170var constantValue = returnOperation.ReturnedValue.ConstantValue;
Microsoft.NetCore.Analyzers\Security\DoNotDisableHttpHeaderChecking.cs (2)
62simpleAssignmentOperation.Value.ConstantValue.HasValue && 63simpleAssignmentOperation.Value.ConstantValue.Value is false)
Microsoft.NetCore.Analyzers\Security\DoNotDisableTokenValidationChecks.cs (3)
70simpleAssignmentOperation.Value.ConstantValue.HasValue && 71simpleAssignmentOperation.Value.ConstantValue.Value != null && 72simpleAssignmentOperation.Value.ConstantValue.Value.Equals(false) &&
Microsoft.NetCore.Analyzers\Security\DoNotSetSwitch.cs (1)
110var values = invocationOperation.Arguments.Select(s => s.Value.ConstantValue).ToArray();
Microsoft.NetCore.Analyzers\Security\DoNotUseDeprecatedSecurityProtocols.cs (4)
154if (childOperation.ConstantValue.HasValue 155&& childOperation.ConstantValue.Value is int integerValue) 176foundDeprecatedOperation.ConstantValue)); 184foundHardCodedOperation.ConstantValue));
Microsoft.NetCore.Analyzers\Security\DoNotUseDSA.cs (4)
132arguments[0].Value.ConstantValue.HasValue && 133arguments[0].Value.ConstantValue.Value is { } argValue) 148arguments[0].Value.ConstantValue.HasValue && 149arguments[0].Value.ConstantValue.Value is { } argValueForFirstParameter)
Microsoft.NetCore.Analyzers\Security\JsonNetTypeNameHandling.cs (2)
86if (childOperation.ConstantValue.HasValue 87&& childOperation.ConstantValue.Value is int integerValue
Microsoft.NetCore.Analyzers\Security\SetHttpOnlyForHttpCookie.cs (2)
102simpleAssignmentOperation.Value.ConstantValue.HasValue && 103simpleAssignmentOperation.Value.ConstantValue.Value is false)
Microsoft.NetCore.Analyzers\Security\SslProtocolsAnalyzer.cs (4)
179if (childOperation.ConstantValue.HasValue 180&& childOperation.ConstantValue.Value is int integerValue) 201foundDeprecatedOperation.ConstantValue)); 209foundHardcodedOperation.ConstantValue));
Microsoft.NetCore.Analyzers\Security\UseRSAWithSufficientKeySize.cs (9)
91arguments[0].Value.ConstantValue.HasValue && 92Convert.ToInt32(arguments[0].Value.ConstantValue.Value, CultureInfo.InvariantCulture) < 2048) 130arguments[0].Value.ConstantValue.HasValue) 132if (arguments[0].Value.ConstantValue.Value is { } argValue && 146arguments[0].Value.ConstantValue.HasValue) 149if (arguments[0].Value.ConstantValue.Value is { } argValue && 155arrayCreationOperation.DimensionSizes[0].ConstantValue.Value is { } dimensionSize && 160conversionOperation.Operand.ConstantValue.HasValue && 161Convert.ToInt32(conversionOperation.Operand.ConstantValue.Value, CultureInfo.InvariantCulture) < 2048) /* Specify the key size is smaller than 2048 explicitly */ )
Microsoft.NetCore.Analyzers\Tasks\DoNotConfigureAwaitWithSuppressThrowing.cs (2)
63invocation.Arguments[0].Value is IOperation { ConstantValue.HasValue: true } arg && 64DiagnosticHelpers.TryConvertToUInt64(arg.ConstantValue.Value, configureAwaitOptionsType.EnumUnderlyingType.SpecialType, out ulong argValue) &&
Microsoft.NetCore.Analyzers\Usage\ProvideHttpClientHandlerMaxResponseHeaderLengthValueCorrectly.cs (2)
74if (assignmentOperation.Value is null || !assignmentOperation.Value.ConstantValue.HasValue || assignmentOperation.Value.ConstantValue.Value is not int propertyValue)
Microsoft.NetFramework.Analyzers\Helpers\SecurityDiagnosticHelpers.cs (1)
154if (operation is not ILiteralOperation literal || !literal.ConstantValue.HasValue)
src\440320f3f10733a8\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (3)
195if (operation.ConstantValue.HasValue) 197return operation.ConstantValue.Value != null ? 198ValueContentAbstractValue.Create(operation.ConstantValue.Value, valueTypeSymbol) :
src\ffd9070534249528\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (2)
755if (operation.ConstantValue.HasValue) 758operation.ConstantValue.Value == null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (3)
127if (operation.ConstantValue.HasValue) 131distinctReferencedConstantsBuilder.Add(operation.ConstantValue.Value ?? s_nullConstantPlaceholder); 330return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKindEx.Attribute)));
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\Extensions\IOperationExtensions.cs (7)
64return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 69if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value) 86var constantValue = operation.ConstantValue; 139if (operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null))) 817(current.ConstantValue.HasValue || current.Type != null))
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityFactory.cs (2)
109if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is int index)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (9)
745branch.BranchValue.ConstantValue.HasValue) 747var alwaysTrue = (bool)branch.BranchValue.ConstantValue.Value!; 1280if (patternOperation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 1787if (operation is IConstantPatternOperation constant && constant.Value.ConstantValue.HasValue && constant.Value.ConstantValue.Value is null) 1805if (operation is INegatedPatternOperation negated && negated.Pattern is IConstantPatternOperation constant && constant.Value.ConstantValue.HasValue && constant.Value.ConstantValue.Value is null) 1854var leftConstantValueOpt = operation.LeftOperand.ConstantValue; 1856var rightConstantValueOpt = operation.RightOperand.ConstantValue;
Microsoft.CodeAnalysis.ResxSourceGenerator (11)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (3)
125if (operation.ConstantValue.HasValue) 129distinctReferencedConstantsBuilder.Add(operation.ConstantValue.Value ?? s_nullConstantPlaceholder); 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute)));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (4)
63return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 68if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
Microsoft.CodeAnalysis.Workspaces (7)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
436var numericValue = numericLiteralExpression.ConstantValue; 479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Microsoft.Interop.ComInterfaceGenerator (2)
Analyzers\ComHostingDoesNotSupportGeneratedComInterfaceAnalyzer.cs (1)
46|| ctor.Arguments[0].Value.ConstantValue.Value is not true)
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\OperationExtensions.cs (1)
47return operation is { ConstantValue: { HasValue: true, Value: null } };
Microsoft.Interop.LibraryImportGenerator (2)
Analyzers\CustomMarshallerAttributeAnalyzer.cs (1)
689if (marshalModeArgument.Value is not IFieldReferenceOperation { ConstantValue.Value: var marshalMode }
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\OperationExtensions.cs (1)
47return operation is { ConstantValue: { HasValue: true, Value: null } };
Microsoft.Interop.LibraryImportGenerator.Downlevel (1)
src\runtime\src\libraries\System.Runtime.InteropServices\gen\Common\OperationExtensions.cs (1)
47return operation is { ConstantValue: { HasValue: true, Value: null } };
Roslyn.Diagnostics.Analyzers (14)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\CodeMetrics\ComputationalComplexityMetrics.cs (3)
125if (operation.ConstantValue.HasValue) 129distinctReferencedConstantsBuilder.Add(operation.ConstantValue.Value ?? s_nullConstantPlaceholder); 328return !operation.DescendantsAndSelf().All(o => o.IsImplicit || (!o.ConstantValue.HasValue && o.Type == null && o.Kind is not (OperationKind.Branch or OperationKind.Attribute)));
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (4)
63return operation.ConstantValue.HasValue && operation.ConstantValue.Value == null; 68if (operation.ConstantValue.HasValue && operation.ConstantValue.Value is bool value)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\OperationExtensions.cs (1)
381=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\CustomDataFlowAnalysis.cs (2)
148if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\FlowAnalysis\SymbolUsageAnalysis\SymbolUsageAnalysis.Walker.cs (1)
484if (currentOperation.ConstantValue.Value is null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\SyntaxGeneratorExtensions_Negate.cs (3)
436var numericValue = numericLiteralExpression.ConstantValue; 479operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: true } }) 485operation is { Kind: OperationKind.Literal, ConstantValue: { HasValue: true, Value: false } })
Roslyn.Diagnostics.CSharp.Analyzers (2)
CSharpDoNotUseDebugAssertForInterpolatedStrings.cs (1)
68invocation.Arguments is [_, IArgumentOperation { Value: IInterpolatedStringOperation { ConstantValue.HasValue: false } }])
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
1148=> operation.ConstantValue is { HasValue: true, Value: null };
System.Text.RegularExpressions.Generator (10)
UpgradeToGeneratedRegexAnalyzer.cs (4)
121if (!argument.Value.ConstantValue.HasValue) 128_ = RegexParser.ParseOptionsInPattern((string)argument.Value.ConstantValue.Value!, RegexOptions.None); 144if (!argument.Value.ConstantValue.HasValue) 149RegexOptions value = (RegexOptions)(int)argument.Value.ConstantValue.Value!;
UpgradeToGeneratedRegexCodeFixer.cs (6)
382?.Value.ConstantValue.Value as string; 388return optionsArgument is null || !optionsArgument.Value.ConstantValue.HasValue ? 390(RegexOptions)(int)optionsArgument.Value.ConstantValue.Value!; 409string optionsLiteral = Literal(((RegexOptions)(int)argument.Value.ConstantValue.Value!).ToString()); 413if (argument.Value.ConstantValue.Value is string str && ShouldUseVerbatimString(str)) 421return generator.LiteralExpression(argument.Value.ConstantValue.Value);