summaryrefslogtreecommitdiff
path: root/src/core/parser/ParserScope.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-04-15 20:42:01 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:24:19 +0200
commit586b4486f4661681b8fe0c639830bd9db3986d5a (patch)
treefb34c042cc129b38e911006f347e094885816f83 /src/core/parser/ParserScope.cpp
parent8810fc675a07e0ed62bcc391bb0464bc04dd3e37 (diff)
Simplify resolution callback, move NullResolveCallback to ResolutionCallbacks.cpp
Diffstat (limited to 'src/core/parser/ParserScope.cpp')
-rw-r--r--src/core/parser/ParserScope.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/core/parser/ParserScope.cpp b/src/core/parser/ParserScope.cpp
index 5e4b37f..7a7cb74 100644
--- a/src/core/parser/ParserScope.cpp
+++ b/src/core/parser/ParserScope.cpp
@@ -409,20 +409,15 @@ bool ParserScope::resolveType(const std::string &name, Handle<Node> owner,
return resolveType(Utils::split(name, '.'), owner, logger, resultCallback);
}
-bool ParserScope::resolveValue(Variant &data, Handle<Node> owner,
- Handle<Type> type, Logger &logger)
+bool ParserScope::resolveValue(Variant &data, Handle<Type> type, Logger &logger)
{
- return type->build(data, logger,
- [&](bool async, const Rtti *rttiType,
- const std::vector<std::string> &path,
- ResolutionResultCallback resultCallback) mutable {
- if (!async) {
- Rooted<Node> resolved = ParserScopeBase::resolve(rttiType, path, logger);
- resultCallback(resolved, owner, logger);
- return resolved != nullptr;
- }
- return resolve(rttiType, path, type, logger, resultCallback);
- });
+ // Run the build function
+ return type->build(
+ data, logger,
+ [&logger, this](const Rtti *rttiType,
+ const std::vector<std::string> &path) mutable {
+ return ParserScopeBase::resolve(rttiType, path, logger);
+ });
}
bool ParserScope::resolveTypeWithValue(const std::vector<std::string> &path,
@@ -440,7 +435,7 @@ bool ParserScope::resolveTypeWithValue(const std::vector<std::string> &path,
[=](Handle<Node> resolved, Handle<Node> owner, Logger &logger) mutable {
if (resolved != nullptr) {
Rooted<Type> type = resolved.cast<Type>();
- scope.resolveValue(*valuePtr, owner, type, logger);
+ scope.resolveValue(*valuePtr, type, logger);
}
// Call the result callback with the type