public NodeReferenceSymbol(string name, Location location, INodeSymbol declaration) : base(name, location) {
     Declaration = declaration;
 }
        void AddNodeDeclaration(INodeSymbol nodeSymbol) {

            if (_taskDefinition.NodeDeclarations.Contains(nodeSymbol.Name)) {
                var existing = _taskDefinition.NodeDeclarations[nodeSymbol.Name];

                _diagnostics.Add(new Diagnostic(
                    existing.Location,
                    DiagnosticDescriptors.Semantic.Nav0022NodeWithName0AlreadyDeclared,
                    existing.Name));

                _diagnostics.Add(new Diagnostic(
                    nodeSymbol.Location,
                    DiagnosticDescriptors.Semantic.Nav0022NodeWithName0AlreadyDeclared,
                    nodeSymbol.Name));
            } else {
                _taskDefinition.NodeDeclarations.Add(nodeSymbol);
            }
        }