public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation) { IVariableInitializerOperation initializer = operation.GetVariableInitializer(); if (initializer != null) { IdentifiersAssigned.Add(operation.Symbol.Name); } base.VisitVariableDeclarator(operation); }
public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation) { if (local.Equals(operation.Symbol)) { IVariableInitializerOperation initializer = operation.GetVariableInitializer(); if (initializer != null) { TrySetEvent(initializer.Value); } } base.VisitVariableDeclarator(operation); }
public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation) { base.VisitVariableDeclarator(operation); if (currentLocal.Equals(operation.Symbol) && EndsBeforeMaxLocation(operation)) { IVariableInitializerOperation initializer = operation.GetVariableInitializer(); if (initializer != null) { AnalyzeAssignmentValue(initializer.Value); } } }
public override TAbstractAnalysisValue VisitVariableDeclarator(IVariableDeclaratorOperation operation, object argument) { var value = base.VisitVariableDeclarator(operation, argument); // Handle variable declarations without initializer (IVariableInitializerOperation). var initializer = operation.GetVariableInitializer(); if (initializer == null) { value = ValueDomain.Bottom; SetAbstractValue(operation.Symbol, value); } return(value); }
public override TAbstractAnalysisValue VisitVariableDeclarator(IVariableDeclaratorOperation operation, object argument) { var value = base.VisitVariableDeclarator(operation, argument); // Handle variable declarations without initializer (IVariableInitializerOperation). var initializer = operation.GetVariableInitializer(); if (initializer == null) { value = ValueDomain.Bottom; if (AnalysisEntityFactory.TryCreateForSymbolDeclaration(operation.Symbol, out AnalysisEntity analysisEntity)) { SetAbstractValue(analysisEntity, value); } } return(value); }
static async Task <Document?> HandleVariableDeclarator(IVariableDeclaratorOperation variableDeclaratorOperation, Document doc, SyntaxNode root, CancellationToken cancellationToken) { IVariableDeclarationOperation variableDeclarationOperation = (IVariableDeclarationOperation)variableDeclaratorOperation.Parent; IVariableDeclarationGroupOperation variableGroupDeclarationOperation = (IVariableDeclarationGroupOperation)variableDeclarationOperation.Parent; DocumentEditor editor = await DocumentEditor.CreateAsync(doc, cancellationToken).ConfigureAwait(false); SyntaxGenerator generator = editor.Generator; ILocalSymbol currentSymbol = variableDeclaratorOperation.Symbol; var variableInitializerOperation = variableDeclaratorOperation.GetVariableInitializer(); string unitString = (string)variableInitializerOperation.Value.ConstantValue.Value; char charValue = unitString[0]; SyntaxNode charLiteralExpressionNode = generator.LiteralExpression(charValue); var charTypeNode = generator.TypeExpression(SpecialType.System_Char); var charSyntaxNode = generator.LocalDeclarationStatement(charTypeNode, currentSymbol.Name, charLiteralExpressionNode, isConst: true); charSyntaxNode = charSyntaxNode.WithTriviaFrom(variableGroupDeclarationOperation.Syntax); var newRoot = generator.ReplaceNode(root, variableGroupDeclarationOperation.Syntax, charSyntaxNode); return(doc.WithSyntaxRoot(newRoot)); }