diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-04-15 20:42:01 +0200 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2016-04-25 22:24:19 +0200 |
commit | 586b4486f4661681b8fe0c639830bd9db3986d5a (patch) | |
tree | fb34c042cc129b38e911006f347e094885816f83 /src/core/parser/ParserScope.cpp | |
parent | 8810fc675a07e0ed62bcc391bb0464bc04dd3e37 (diff) |
Simplify resolution callback, move NullResolveCallback to ResolutionCallbacks.cpp
Diffstat (limited to 'src/core/parser/ParserScope.cpp')
-rw-r--r-- | src/core/parser/ParserScope.cpp | 23 |
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 |