fix: oracle review fixes — resolver exit code, dead include, pointer compose
- Exit code: plan.missing.empty() ? 0 : 1 (was always returning 0) - Removed dead <algorithm> include from plan.cpp - BuildStep now composes config::ResolvedPackage instead of duplicating features/config fields; PackageDef stored as const pointer
This commit is contained in:
+3
-3
@@ -270,9 +270,9 @@ int main(int argc, char* argv[]) {
|
|||||||
for (auto& step : plan.steps) {
|
for (auto& step : plan.steps) {
|
||||||
std::cout << " " << step.name << " (" << step.dependencies.size()
|
std::cout << " " << step.name << " (" << step.dependencies.size()
|
||||||
<< " deps";
|
<< " deps";
|
||||||
if (!step.features.empty()) {
|
if (!step.resolved.features.empty()) {
|
||||||
std::cout << ", features:";
|
std::cout << ", features:";
|
||||||
for (auto& [k, f] : step.features) {
|
for (auto& [k, f] : step.resolved.features) {
|
||||||
if (f.enabled && !f.flag.empty()) {
|
if (f.enabled && !f.flag.empty()) {
|
||||||
std::cout << " " << k;
|
std::cout << " " << k;
|
||||||
}
|
}
|
||||||
@@ -280,7 +280,7 @@ int main(int argc, char* argv[]) {
|
|||||||
}
|
}
|
||||||
std::cout << ")\n";
|
std::cout << ")\n";
|
||||||
}
|
}
|
||||||
return plan.steps.empty() && plan.missing.empty() ? 0 : 0;
|
return plan.missing.empty() ? 0 : 1;
|
||||||
} catch (const std::runtime_error& e) {
|
} catch (const std::runtime_error& e) {
|
||||||
handle_parse_error(file_arg, source, e);
|
handle_parse_error(file_arg, source, e);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#include "kappa/resolve/plan.hpp"
|
#include "kappa/resolve/plan.hpp"
|
||||||
#include "kappa/config/merge.hpp"
|
#include "kappa/config/merge.hpp"
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
namespace kappa::resolve {
|
namespace kappa::resolve {
|
||||||
@@ -23,15 +22,14 @@ BuildPlan resolve(const dsl::SystemConfig& cfg, const Registry& registry) {
|
|||||||
|
|
||||||
BuildStep step;
|
BuildStep step;
|
||||||
step.name = pkg.name;
|
step.name = pkg.name;
|
||||||
step.package = pkg;
|
step.package = &pkg;
|
||||||
step.features = resolved.features;
|
step.resolved = std::move(resolved);
|
||||||
step.config = resolved.config;
|
|
||||||
|
|
||||||
for (auto& dep : pkg.depends) {
|
for (auto& dep : pkg.depends) {
|
||||||
if (!dep.feature.empty()) {
|
if (!dep.feature.empty()) {
|
||||||
auto fit = step.features.find(dep.feature);
|
auto fit = step.resolved.features.find(dep.feature);
|
||||||
if (fit == step.features.end() || !fit->second.enabled) {
|
if (fit == step.resolved.features.end() || !fit->second.enabled) {
|
||||||
continue; // feature-gated and disabled
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
step.dependencies.push_back({dep.name, dep.version});
|
step.dependencies.push_back({dep.name, dep.version});
|
||||||
|
|||||||
Reference in New Issue
Block a user