Skip to content

Commit ae2b118

Browse files
committed
Refactor configuration_loader::load_config_file to return LEAF result
Move load_config_file's error handlers into its caller, load_for_file. This commit should not change behavior.
1 parent 228e359 commit ae2b118

File tree

2 files changed

+39
-39
lines changed

2 files changed

+39
-39
lines changed

src/configuration-loader.cpp

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,22 @@ configuration_or_error configuration_loader::load_for_file(
7171
configuration_or_error configuration_loader::load_for_file(
7272
const file_to_lint& file) {
7373
if (file.config_file) {
74-
return this->load_config_file(file.config_file);
74+
return boost::leaf::try_handle_all(
75+
[&]() -> boost::leaf::result<configuration_or_error> {
76+
return this->load_config_file(file.config_file);
77+
},
78+
make_canonicalize_path_error_handlers(
79+
[](std::string&& message) -> configuration_or_error {
80+
return configuration_or_error(std::move(message));
81+
}),
82+
make_read_file_error_handlers(
83+
[](std::string&& message) -> configuration_or_error {
84+
return configuration_or_error(std::move(message));
85+
}),
86+
[]() {
87+
QLJS_ASSERT(false);
88+
return configuration_or_error("unknown error");
89+
});
7590
} else {
7691
if (file.path) {
7792
return this->find_and_load_config_file_for_input(file.path);
@@ -98,45 +113,30 @@ configuration_or_error configuration_loader::load_for_file(
98113
}
99114
}
100115

101-
configuration_or_error configuration_loader::load_config_file(
116+
boost::leaf::result<configuration*> configuration_loader::load_config_file(
102117
const char* config_path) {
103-
return boost::leaf::try_handle_all(
104-
[&]() -> boost::leaf::result<configuration_or_error> {
105-
boost::leaf::result<canonical_path_result> canonical_config_path =
106-
this->fs_->canonicalize_path(config_path);
107-
if (!canonical_config_path) return canonical_config_path.error();
118+
boost::leaf::result<canonical_path_result> canonical_config_path =
119+
this->fs_->canonicalize_path(config_path);
120+
if (!canonical_config_path) return canonical_config_path.error();
108121

109-
if (loaded_config_file* config_file =
110-
this->get_loaded_config(canonical_config_path->canonical())) {
111-
return configuration_or_error(&config_file->config);
112-
}
113-
boost::leaf::result<padded_string> config_json =
114-
this->fs_->read_file(canonical_config_path->canonical());
115-
if (!config_json) return config_json.error();
116-
auto [config_it, inserted] = this->loaded_config_files_.emplace(
117-
std::piecewise_construct,
118-
std::forward_as_tuple(canonical_config_path->canonical()),
119-
std::forward_as_tuple());
120-
QLJS_ASSERT(inserted);
121-
loaded_config_file* config_file = &config_it->second;
122-
config_file->file_content = std::move(*config_json);
123-
config_file->config.set_config_file_path(
124-
std::move(*canonical_config_path).canonical());
125-
config_file->config.load_from_json(&config_file->file_content);
126-
return configuration_or_error(&config_file->config);
127-
},
128-
make_canonicalize_path_error_handlers(
129-
[](std::string&& message) -> configuration_or_error {
130-
return configuration_or_error(std::move(message));
131-
}),
132-
make_read_file_error_handlers(
133-
[](std::string&& message) -> configuration_or_error {
134-
return configuration_or_error(std::move(message));
135-
}),
136-
[]() {
137-
QLJS_ASSERT(false);
138-
return configuration_or_error("unknown error");
139-
});
122+
if (loaded_config_file* config_file =
123+
this->get_loaded_config(canonical_config_path->canonical())) {
124+
return &config_file->config;
125+
}
126+
boost::leaf::result<padded_string> config_json =
127+
this->fs_->read_file(canonical_config_path->canonical());
128+
if (!config_json) return config_json.error();
129+
auto [config_it, inserted] = this->loaded_config_files_.emplace(
130+
std::piecewise_construct,
131+
std::forward_as_tuple(canonical_config_path->canonical()),
132+
std::forward_as_tuple());
133+
QLJS_ASSERT(inserted);
134+
loaded_config_file* config_file = &config_it->second;
135+
config_file->file_content = std::move(*config_json);
136+
config_file->config.set_config_file_path(
137+
std::move(*canonical_config_path).canonical());
138+
config_file->config.load_from_json(&config_file->file_content);
139+
return &config_file->config;
140140
}
141141

142142
QLJS_WARNING_PUSH

src/quick-lint-js/configuration-loader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class configuration_loader {
8080
void* token;
8181
};
8282

83-
configuration_or_error load_config_file(const char* config_path);
83+
boost::leaf::result<configuration*> load_config_file(const char* config_path);
8484
configuration_or_error find_and_load_config_file_for_input(
8585
const char* input_path);
8686
boost::leaf::result<configuration*>

0 commit comments

Comments
 (0)