@@ -111,9 +111,9 @@ Language *Language::FindPlugin(llvm::StringRef file_path) {
111111 ForEach ([&result, file_path](Language *language) {
112112 if (language->IsSourceFile (file_path)) {
113113 result = language;
114- return false ;
114+ return IterationAction::Stop ;
115115 }
116- return true ;
116+ return IterationAction::Continue ;
117117 });
118118 return result;
119119}
@@ -128,7 +128,8 @@ Language *Language::FindPlugin(LanguageType language,
128128 return result;
129129}
130130
131- void Language::ForEach (std::function<bool (Language *)> callback) {
131+ void Language::ForEach (
132+ llvm::function_ref<IterationAction(Language *)> callback) {
132133 // If we want to iterate over all languages, we first have to complete the
133134 // LanguagesMap.
134135 static llvm::once_flag g_initialize;
@@ -153,7 +154,7 @@ void Language::ForEach(std::function<bool(Language *)> callback) {
153154 }
154155
155156 for (auto *lang : loaded_plugins) {
156- if (! callback (lang))
157+ if (callback (lang) == IterationAction::Stop )
157158 break ;
158159 }
159160}
@@ -289,9 +290,9 @@ void Language::PrintAllLanguages(Stream &s, const char *prefix,
289290}
290291
291292void Language::ForAllLanguages (
292- std::function< bool (lldb::LanguageType)> callback) {
293+ llvm::function_ref<IterationAction (lldb::LanguageType)> callback) {
293294 for (uint32_t i = 1 ; i < num_languages; i++) {
294- if (! callback (language_names[i].type ))
295+ if (callback (language_names[i].type ) == IterationAction::Stop )
295296 break ;
296297 }
297298}
@@ -416,7 +417,7 @@ std::set<lldb::LanguageType> Language::GetSupportedLanguages() {
416417 std::set<lldb::LanguageType> supported_languages;
417418 ForEach ([&](Language *lang) {
418419 supported_languages.emplace (lang->GetLanguageType ());
419- return true ;
420+ return IterationAction::Continue ;
420421 });
421422 return supported_languages;
422423}
0 commit comments