summaryrefslogtreecommitdiff
path: root/src/core/parser/stack/DocumentHandler.cpp
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-17 19:48:24 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-17 19:48:24 +0100
commit0422fd52aadf33ab895a60905f21f737e25bf011 (patch)
tree305a8d5cd90c408877f9981183871bab98c3f18b /src/core/parser/stack/DocumentHandler.cpp
parent1456bbf7ab68da3ec3a1eb507a1c15b88e6c782f (diff)
parent33f617453e3f64d70c6af05058855d6c12749056 (diff)
Merge branch 'master' of somweyr.de:ousia
Diffstat (limited to 'src/core/parser/stack/DocumentHandler.cpp')
-rw-r--r--src/core/parser/stack/DocumentHandler.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/core/parser/stack/DocumentHandler.cpp b/src/core/parser/stack/DocumentHandler.cpp
index 4038a42..e928a54 100644
--- a/src/core/parser/stack/DocumentHandler.cpp
+++ b/src/core/parser/stack/DocumentHandler.cpp
@@ -428,16 +428,24 @@ bool DocumentChildHandler::data(Variant &data)
}
// No field was found that might take the data -- dump the error messages
- // from the loggers
- logger().error("Could not read data with any of the possible fields:",
- SourceLocation{}, MessageMode::NO_CONTEXT);
- size_t f = 0;
- for (auto field : defaultFields) {
- logger().note(std::string("Field ") + Utils::join(field->path(), ".") +
- std::string(":"),
- SourceLocation{}, MessageMode::NO_CONTEXT);
- forks[f].commit();
- f++;
+ // from the loggers -- or, if there were no primitive fields, clearly state
+ // this fact
+ if (defaultFields.empty()) {
+ logger().error("Got data, but structure \"" + name() +
+ "\" does not have any primitive field",
+ data);
+ } else {
+ logger().error("Could not read data with any of the possible fields:",
+ data);
+ size_t f = 0;
+ for (auto field : defaultFields) {
+ logger().note(std::string("Field ") +
+ Utils::join(field->path(), ".") +
+ std::string(":"),
+ SourceLocation{}, MessageMode::NO_CONTEXT);
+ forks[f].commit();
+ f++;
+ }
}
return false;
}
@@ -462,4 +470,4 @@ namespace RttiTypes {
const Rtti DocumentField = RttiBuilder<ousia::parser_stack::DocumentField>(
"DocumentField").parent(&Node);
}
-} \ No newline at end of file
+}