summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-29 22:52:29 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-29 22:52:29 +0100
commit90b2e9507e9d720452792b863b422221fe96d948 (patch)
tree407a271de4730d087de4132eab3921c44c65e400 /src/plugins
parentde0891c69166f6988e0b13137f9bf2b7b67449f2 (diff)
Unified signature of resolve functions, passing the "owner" to the callback functions in ParserScope::resolve
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/xml/XmlParser.cpp32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/plugins/xml/XmlParser.cpp b/src/plugins/xml/XmlParser.cpp
index 6e0fea0..5e30fec 100644
--- a/src/plugins/xml/XmlParser.cpp
+++ b/src/plugins/xml/XmlParser.cpp
@@ -167,13 +167,13 @@ public:
// Try to resolve the parent type and set it as parent structure
if (!parent.empty()) {
- scope().resolve<StructType>(parent, logger(),
- [structType](Handle<StructType> parent,
- Logger &logger) mutable {
- structType->setParentStructure(
- parent, logger);
- },
- structType);
+ scope().resolve<StructType>(
+ parent, structType, logger(),
+ [](Handle<Node> parent, Handle<Node> structType,
+ Logger &logger) {
+ structType.cast<StructType>()->setParentStructure(
+ parent.cast<StructType>(), logger);
+ });
}
// Descend into the struct type
@@ -212,11 +212,10 @@ public:
// Try to resolve the type
scope().resolve<Type>(
- type, logger(),
- [attribute](Handle<Type> type, Logger &logger) mutable {
- attribute->setType(type, logger);
- },
- attribute);
+ type, attribute, logger(),
+ [](Handle<Node> type, Handle<Node> attribute, Logger &logger) {
+ attribute.cast<Attribute>()->setType(type.cast<Type>(), logger);
+ });
}
void end() override {}
@@ -244,11 +243,10 @@ public:
// Try to resolve the type
scope().resolve<Type>(
- type, logger(),
- [constant](Handle<Type> type, Logger &logger) mutable {
- constant->setType(type, logger);
- },
- constant);
+ type, constant, logger(),
+ [](Handle<Node> type, Handle<Node> constant, Logger &logger) {
+ constant.cast<Constant>()->setType(type.cast<Type>(), logger);
+ });
}
void end() override {}