/// <inheritdoc/> public override SyntaxNode VisitIncompleteTrigger(UvssIncompleteTriggerSyntax node) { var unchanged = true; var newTriggerKeyword = (SyntaxToken)Visit(node.TriggerKeyword); if (newTriggerKeyword != node.TriggerKeyword) { unchanged = false; } var newQualifierToken = (SyntaxToken)Visit(node.QualifierToken); if (newQualifierToken != node.QualifierToken) { unchanged = false; } var newBody = (UvssBlockSyntax)Visit(node.Body); if (newBody != node.Body) { unchanged = false; } return(unchanged ? node : new UvssIncompleteTriggerSyntax( newTriggerKeyword, newQualifierToken, newBody)); }
/// <summary> /// Adds a diagnostic indicating that a trigger is incomplete /// to the specified collection of diagnostics. /// </summary> /// <param name="collection">The collection to which to add the diagnostic.</param> /// <param name="node">The syntax node which is associated with the diagnostic.</param> internal static void ReportIncompleteTrigger(ref ICollection <DiagnosticInfo> collection, UvssIncompleteTriggerSyntax node) { Contract.Require(node, nameof(node)); var span = new TextSpan(node.TriggerKeyword.Width, 0); var diagnostic = new DiagnosticInfo(node.TriggerKeyword, DiagnosticID.IncompleteTrigger, DiagnosticSeverity.Error, span, "Trigger type expected ('property' or 'event')"); Report(ref collection, diagnostic); }
/// <summary> /// Visits the specified incomplete trigger node. /// </summary> /// <param name="node">The node to visit.</param> /// <returns>A node which should replace the visited node, or a reference to the visited node /// itself if no changes were made.</returns> public virtual SyntaxNode VisitIncompleteTrigger(UvssIncompleteTriggerSyntax node) { return(VisitSyntaxNode(node)); }