require_mutable_this

This commit is contained in:
Andrew Morris
2023-04-05 10:15:19 +10:00
parent 9bad858f7c
commit dc685f5892
16 changed files with 121 additions and 21 deletions

View File

@@ -12,6 +12,7 @@ use crate::asm::{
use crate::diagnostic::{Diagnostic, DiagnosticLevel};
use crate::expression_compiler::CompiledExpression;
use crate::expression_compiler::ExpressionCompiler;
use crate::instruction_mutates_this::instruction_mutates_this;
use crate::name_allocator::{NameAllocator, RegAllocator};
use crate::scope::{NameId, OwnerId};
use crate::scope_analysis::{fn_to_owner_id, Name, ScopeAnalysis};
@@ -111,6 +112,12 @@ impl FunctionCompiler {
}
pub fn push(&mut self, instruction: Instruction) {
if instruction_mutates_this(&instruction) {
self.current.body.push(InstructionOrLabel::Instruction(
Instruction::RequireMutableThis,
));
}
self
.current
.body