public override void VisitCompoundAssignmentStatement(CompoundAssignmentStatementSyntax node) { if (!_featureStatisticsBuilder.HasCompoundAssignments) { _featureStatisticsBuilder.HasCompoundAssignments = true; } base.VisitCompoundAssignmentStatement(node); }
private static void AnalyzeCompoundAssignmentStatementIdentifier( IdentifierNameSyntax identifier, Dictionary <string, IdentifierNameSyntax> firstVarInitializerSyntax, Dictionary <string, IdentifierNameSyntax> firstVarUsageSyntax) { // ISSUE: variable of a compiler-generated type CompoundAssignmentStatementSyntax parent = (CompoundAssignmentStatementSyntax)identifier.Parent; if (parent.Target.IsKind(SyntaxKind.IdentifierName) && SemanticFacts.IsSameName(((SimpleNameSyntax)parent.Target).Identifier.ValueText, identifier.Identifier.ValueText)) { firstVarInitializerSyntax.AddIdentifierIfNotExist(identifier); } else { firstVarUsageSyntax.AddIdentifierIfNotExist(identifier); } }
public override void VisitCompoundAssignmentStatement(CompoundAssignmentStatementSyntax node) { // Visit values first so that we don't end up with circular references. Visit(node.Expression); if (node.Variable is IdentifierNameSyntax identifierName) { var variable = GetVariableOrCreateGlobal(identifierName.Name); _variables[identifierName] = variable; variable.AddWriteLocation(node); variable.AddReferencingScope(Scope); Scope.AddReferencedVariable(variable); } else { Visit(node.Variable); } }
public override void VisitCompoundAssignmentStatement(CompoundAssignmentStatementSyntax node) { // Visit values first so that we don't end up with circular references. Visit(node.Expression); if (node.Variable is IdentifierNameSyntax identifierName) { if (identifierName.IsMissing || string.IsNullOrWhiteSpace(identifierName.Name)) { return; } var variable = GetVariableOrCreateGlobal(identifierName.Name); _variables.Add(identifierName, variable); variable.AddWriteLocation(node); variable.AddReferencingScope(Scope); Scope.AddReferencedVariable(variable); } else { Visit(node.Variable); } }