feat: 不允许虚任务作为 @ 运算的左元

This commit is contained in:
zzyyyl
2025-09-26 15:33:15 +08:00
parent a8ef1420b6
commit cd17cced22
3 changed files with 2 additions and 9 deletions

View File

@@ -863,7 +863,6 @@ asst::ResultOrError<asst::TaskData::RawCompileResult> asst::TaskData::compile_ra
return TaskDataSymbol::append_prefix(
symbol,
prefix,
self_name,
get_raw,
[&](const TaskList& raw_or_empty) -> TaskDataSymbol::SymbolsOrError {
if (auto opt = compile_raw_tasklist(raw_or_empty, self_name, get_raw, allow_duplicate)) {

View File

@@ -3,20 +3,15 @@
asst::TaskDataSymbol::SymbolsOrError asst::TaskDataSymbol::append_prefix(
const TaskDataSymbol& symbol,
const TaskDataSymbol& prefix,
std::string_view self_name,
std::function<TaskDerivedConstPtr(std::string_view)> get_raw,
std::function<SymbolsOrError(const TaskList&)> compile_tasklist)
{
// 注意A@#self 是 A 而不是 A@self_name, #self@A 是 self_name@A 而不是 A
std::string_view prefix_name;
if (prefix == SharpSelf) {
prefix_name = self_name;
}
else if (prefix.is_name()) {
if (prefix.is_name()) {
prefix_name = prefix.name();
}
else [[unlikely]] {
return { std::nullopt, "prefix " + prefix.name() + " is not name or self" };
return { std::nullopt, "prefix " + prefix.name() + " is not name" };
}
if (prefix_name.empty()) {
return std::vector { symbol };

View File

@@ -136,7 +136,6 @@ public:
static SymbolsOrError append_prefix(
const TaskDataSymbol& symbol,
const TaskDataSymbol& prefix,
std::string_view self_name,
std::function<TaskDerivedConstPtr(std::string_view)> get_raw,
std::function<SymbolsOrError(const TaskList&)> compile_tasklist);