public override void PostWalkTaskNodeDeclaration(TaskNodeDeclarationSyntax taskNodeDeclarationSyntax) { MethodsCalled["PostWalkTaskNodeDeclaration"]=true; }
public override void VisitTaskNodeDeclaration(TaskNodeDeclarationSyntax taskNodeDeclarationSyntax) { var taskIdentifier = taskNodeDeclarationSyntax.Identifier; var taskAlias = taskNodeDeclarationSyntax.IdentifierAlias; var nodeIdentifier = taskAlias.IsMissing ? taskIdentifier : taskAlias; if (nodeIdentifier.IsMissing) { // Diesen Fall haben wir, wenn nur "task ;" eingegeben wird. Dafür gibt es aber bereits einen Syntax Fehler. return; } TaskNodeAliasSymbol taskNodeAlias = null; if (!taskAlias.IsMissing) { var aliasName = taskAlias.ToString(); var aliasLocation = taskAlias.GetLocation(); taskNodeAlias = new TaskNodeAliasSymbol(aliasName, aliasLocation); } var taskName = taskIdentifier.ToString(); var taskLocation = taskIdentifier.GetLocation(); var taskDeclaration = _taskDeklarations.TryFindSymbol(taskName); var taskNode = new TaskNodeSymbol(taskName, taskLocation, taskNodeDeclarationSyntax, taskNodeAlias, taskDeclaration, _taskDefinition); if(taskNode.Declaration == null) { if(taskLocation != null) { _diagnostics.Add(new Diagnostic( taskLocation, DiagnosticDescriptors.Semantic.Nav0010CannotResolveTask0, taskName)); } } else { taskNode.Declaration.References.Add(taskNode); } AddNodeDeclaration(taskNode); }
// TaskNodeDeclarationSyntax public override bool WalkTaskNodeDeclaration(TaskNodeDeclarationSyntax taskNodeDeclarationSyntax) { MethodsCalled["WalkTaskNodeDeclaration"]=true; return true; }