mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-19 18:47:55 +08:00
feat: 不允许虚任务作为 @ 运算的左元
This commit is contained in:
@@ -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)) {
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user