From cf493215beb33c427a0687d56b1e18d8e6f85586 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 29 Jan 2015 03:24:23 +0100 Subject: Improved error message --- src/core/model/Node.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/core/model') diff --git a/src/core/model/Node.cpp b/src/core/model/Node.cpp index 366dcc6..6c00e89 100644 --- a/src/core/model/Node.cpp +++ b/src/core/model/Node.cpp @@ -418,17 +418,22 @@ bool Node::validateIsAcyclic(const std::string &name, this); logger.note("The following nodes are included in the cycle: ", SourceLocation{}, MessageMode::NO_CONTEXT); - for (const Node *node : path) { + for (size_t i = 0; i < path.size(); i++) { + auto node = path[i]; const std::string &name = node->getName(); const std::string &typeName = node->type().name; + const std::string suffix = + i == path.size() - 1 + ? std::string{" (this node closes the cycle):"} + : std::string{":"}; if (name.empty()) { logger.note(std::string("Node of internal type ") + typeName + - std::string(" declared here:"), + std::string(" declared here") + suffix, node); } else { logger.note(std::string("Node \"") + name + std::string("\" of internal type ") + typeName + - std::string(" declared here:"), + std::string(" declared here") + suffix, node); } } -- cgit v1.2.3