1 implementation of ConstantValue
Microsoft.CodeAnalysis (1)
Operations\Operation.cs (1)
95public Optional<object?> ConstantValue
130 references to ConstantValue
Microsoft.CodeAnalysis.CodeStyle (26)
AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
40ConstantValueEquals(constantPattern.Value.ConstantValue, value))
AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (2)
45ConstantValueEquals(singleValueCase.Value.ConstantValue, value)) 50ConstantValueEquals(constantPattern.Value.ConstantValue, value))
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
93if (operand.ConstantValue.HasValue && operand.Kind == OperationKind.Literal && 94operand.ConstantValue.Value is bool constValue)
AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
233if (!initializer.Value.ConstantValue.HasValue)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
159value.ConstantValue.HasValue) 621if (assignmentValue.ConstantValue.HasValue)
AbstractSimplifyInterpolationHelpers.cs (3)
90if (invocation.Arguments[0].Value is ILiteralOperation { ConstantValue: { HasValue: true, Value: string value } } literal && 211? alignmentOp is { ConstantValue.HasValue: true } 248=> argument.Value.ConstantValue is { HasValue: true, Value: ' ' };
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
266return operation.ConstantValue.HasValue && 267operation.ConstantValue.Value == null;
CustomDataFlowAnalysis.cs (2)
149if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
OperationExtensions.cs (1)
372=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
PopulateSwitchExpressionHelpers.cs (2)
45if (arm.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 79if (operation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: not null and var value } })
PopulateSwitchStatementHelpers.cs (4)
78if (value.ConstantValue is { HasValue: true, Value: null }) 108if (value is null || !value.ConstantValue.HasValue) 118if (value.ConstantValue.Value is null) 121var caseValue = IntegerUtilities.ToInt64(value.ConstantValue.Value);
SuppressMessageAttributeState.cs (2)
145value.ConstantValue.HasValue && 146value.ConstantValue.Value is string stringValue)
SymbolUsageAnalysis.Walker.cs (1)
457if (currentOperation.ConstantValue.Value is null)
UseConditionalExpressionHelpers.cs (1)
105=> trueValue is ILiteralOperation { ConstantValue: { HasValue: true, Value: bool value } } && value == val;
Microsoft.CodeAnalysis.CodeStyle.Fixes (5)
SyntaxGeneratorExtensions_Negate.cs (5)
412var numericValue = numericLiteralExpression.ConstantValue; 451if (operation?.Kind == OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is true) 455else if (operation?.Kind == OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is false)
Microsoft.CodeAnalysis.CSharp.CodeStyle (6)
CastSimplifier.cs (2)
829=> operation.ConstantValue.HasValue && operation.ConstantValue.Value is null;
CSharpUsePatternCombinatorsAnalyzer.cs (1)
164: operation.ConstantValue.HasValue;
CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
271=> operation.ConstantValue.HasValue && 272operation.ConstantValue.Value is int i &&
UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
207if (element.ConstantValue.Value is not byte b)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (7)
ConvertToRecordHelpers.cs (4)
704ConstantValue.HasValue: true, 705ConstantValue.Value: false, 888ConstantValue.HasValue: true, 889ConstantValue.Value: true,
CSharpUseRangeOperatorCodeFixProvider.cs (3)
172if (startOperation.ConstantValue.HasValue && 173startOperation.ConstantValue.Value is 0) 214=> (int)operation.ConstantValue.Value!; // Safe as we already confirmed this was an int when making the result.
Microsoft.CodeAnalysis.CSharp.Features (11)
ConvertToRecordHelpers.cs (4)
704ConstantValue.HasValue: true, 705ConstantValue.Value: false, 888ConstantValue.HasValue: true, 889ConstantValue.Value: true,
CSharpUsePatternCombinatorsAnalyzer.cs (1)
164: operation.ConstantValue.HasValue;
CSharpUseRangeOperatorCodeFixProvider.cs (3)
172if (startOperation.ConstantValue.HasValue && 173startOperation.ConstantValue.Value is 0) 214=> (int)operation.ConstantValue.Value!; // Safe as we already confirmed this was an int when making the result.
CSharpUseRangeOperatorDiagnosticAnalyzer.cs (2)
271=> operation.ConstantValue.HasValue && 272operation.ConstantValue.Value is int i &&
UseUtf8StringLiteralDiagnosticAnalyzer.cs (1)
207if (element.ConstantValue.Value is not byte b)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\ConstantTests.cs (1)
3513Assert.Equal(stringTextBuilder.ToString(), literalOperation.ConstantValue);
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
CastSimplifier.cs (2)
829=> operation.ConstantValue.HasValue && operation.ConstantValue.Value is null;
Microsoft.CodeAnalysis.Features (23)
AbstractPopulateSwitchExpressionDiagnosticAnalyzer.cs (1)
40ConstantValueEquals(constantPattern.Value.ConstantValue, value))
AbstractPopulateSwitchStatementDiagnosticAnalyzer.cs (2)
45ConstantValueEquals(singleValueCase.Value.ConstantValue, value)) 50ConstantValueEquals(constantPattern.Value.ConstantValue, value))
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (2)
93if (operand.ConstantValue.HasValue && operand.Kind == OperationKind.Literal && 94operand.ConstantValue.Value is bool constValue)
AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
233if (!initializer.Value.ConstantValue.HasValue)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (2)
159value.ConstantValue.HasValue) 621if (assignmentValue.ConstantValue.HasValue)
AbstractSimplifyInterpolationHelpers.cs (3)
90if (invocation.Arguments[0].Value is ILiteralOperation { ConstantValue: { HasValue: true, Value: string value } } literal && 211? alignmentOp is { ConstantValue.HasValue: true } 248=> argument.Value.ConstantValue is { HasValue: true, Value: ' ' };
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (2)
266return operation.ConstantValue.HasValue && 267operation.ConstantValue.Value == null;
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
439: operation.ConstantValue.HasValue;
J\s\src\Analyzers\Core\Analyzers\UseConditionalExpression\UseConditionalExpressionHelpers.cs\UseConditionalExpressionHelpers.cs (1)
105=> trueValue is ILiteralOperation { ConstantValue: { HasValue: true, Value: bool value } } && value == val;
PopulateSwitchExpressionHelpers.cs (2)
45if (arm.Pattern is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: null } }) 79if (operation is IConstantPatternOperation { Value.ConstantValue: { HasValue: true, Value: not null and var value } })
PopulateSwitchStatementHelpers.cs (4)
78if (value.ConstantValue is { HasValue: true, Value: null }) 108if (value is null || !value.ConstantValue.HasValue) 118if (value.ConstantValue.Value is null) 121var caseValue = IntegerUtilities.ToInt64(value.ConstantValue.Value);
SuppressMessageAttributeState.cs (2)
145value.ConstantValue.HasValue && 146value.ConstantValue.Value is string stringValue)
Microsoft.CodeAnalysis.Test.Utilities (38)
Compilation\OperationTreeVerifier.cs (2)
110if (operation.ConstantValue.HasValue) 113LogConstant(operation.ConstantValue);
Compilation\TestOperationVisitor.cs (8)
48var constantValue = operation.ConstantValue; 1344Assert.False(pattern.ConstantValue.HasValue); 1532Assert.False(operation.ConstantValue.HasValue); 1542Assert.False(operation.ConstantValue.HasValue); 1705if (!operation.Value.ConstantValue.HasValue || operation.Value.ConstantValue.Value != null) 1783Assert.False(operation.ConstantValue.HasValue); 1809Assert.False(operation.ConstantValue.HasValue);
CustomDataFlowAnalysis.cs (2)
149if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
Diagnostics\EmptyArrayAnalyzer.cs (1)
78Optional<object> arrayLength = arrayCreation.DimensionSizes[0].ConstantValue;
Diagnostics\LocalCouldBeConstAnalyzer.cs (1)
92if (initializer != null && initializer.Value.ConstantValue.HasValue)
Diagnostics\OperationTestAnalyzer.cs (24)
158if (conditionRight.ConstantValue.HasValue && 164int testValue = (int)conditionRight.ConstantValue.Value; 175setupAssignment.Value.ConstantValue.HasValue && 180int initialValue = (int)setupAssignment.Value.ConstantValue.Value; 249advanceOperation.RightOperand.ConstantValue.HasValue && 253advanceIncrementOpt = advanceOperation.RightOperand.ConstantValue; 264advanceAssignment.Value.ConstantValue.HasValue && 268advanceIncrementOpt = advanceAssignment.Value.ConstantValue; 356singleValueExpression.ConstantValue.HasValue && 359int singleValue = (int)singleValueExpression.ConstantValue.Value; 376rangeMinExpression.ConstantValue.HasValue && 379rangeMaxExpression.ConstantValue.HasValue && 382int rangeMinValue = (int)rangeMinExpression.ConstantValue.Value; 383int rangeMaxValue = (int)rangeMaxExpression.ConstantValue.Value; 399relationalValueExpression.ConstantValue.HasValue && 404int relationalValue = (int)relationalValueExpression.ConstantValue.Value; 586Optional<object> argumentValue = argument.ConstantValue; 632literal.ConstantValue.HasValue && 633(int)literal.ConstantValue.Value == 17) 668if (argument.Value.ConstantValue.HasValue && argument.Value.ConstantValue.Value == null) 1108Optional<object> dimensionSize = arrayValue.DimensionSizes[0].ConstantValue; 1135Optional<object> dimensionSize = arrayValue.DimensionSizes[0].ConstantValue; 1622var rightValue = right.ConstantValue;
Microsoft.CodeAnalysis.VisualBasic.Semantic.UnitTests (1)
Semantics\BinaryOperators.vb (1)
1561Assert.Equal(stringTextBuilder.ToString(), literalOperation.ConstantValue.Value)
Microsoft.CodeAnalysis.Workspaces (9)
CustomDataFlowAnalysis.cs (2)
149if (current.BranchValue.ConstantValue.HasValue && current.BranchValue.ConstantValue.Value is bool constant)
OperationExtensions.cs (1)
372=> operand is ILiteralOperation { ConstantValue: { HasValue: true, Value: null } };
SymbolUsageAnalysis.Walker.cs (1)
457if (currentOperation.ConstantValue.Value is null)
SyntaxGeneratorExtensions_Negate.cs (5)
412var numericValue = numericLiteralExpression.ConstantValue; 451if (operation?.Kind == OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is true) 455else if (operation?.Kind == OperationKind.Literal && operation.ConstantValue.HasValue && operation.ConstantValue.Value is false)
Roslyn.Compilers.VisualBasic.IOperation.UnitTests (1)
IOperation\IOperationTests.vb (1)
75Assert.Equal(CInt(literal1.ConstantValue.Value), 10)