fix: 补充复合运算编译路径与详细复合符号报错路径

This commit is contained in:
2026-06-06 21:57:56 +08:00
parent a60f8c0075
commit dc0874c169
+13
View File
@@ -646,6 +646,13 @@ impl Compiler {
&assign.left
{
if assign.operator != AssignmentOperator::Assign {
if assign.operator == AssignmentOperator::Addition
|| assign.operator == AssignmentOperator::Subtraction
|| assign.operator == AssignmentOperator::Multiplication
|| assign.operator == AssignmentOperator::Division
|| assign.operator == AssignmentOperator::Remainder
|| assign.operator == AssignmentOperator::Exponential
{
let rhs = self.emit_expression(&assign.right, ctx)?;
let name = id_ref.name.as_str();
let var_reg = ctx.lookup_or_global(name);
@@ -660,6 +667,12 @@ impl Compiler {
};
ctx.emit(opcode::encode(op, var_reg, rhs, 0));
Ok(var_reg)
} else {
return Err(format!(
"compound assignment operator {:?} not supported",
assign.operator
));
}
} else {
let val_reg = self.emit_expression(&assign.right, ctx)?;
let name = id_ref.name.as_str();