diff --git a/ets2panda/compiler/lowering/ets/enumPostCheckLowering.cpp b/ets2panda/compiler/lowering/ets/enumPostCheckLowering.cpp index 53831d12cfd15538afdaca3c5f8fe0d1481c2aa5..5004eb571433e0135f83f21474a003bf5be814d2 100644 --- a/ets2panda/compiler/lowering/ets/enumPostCheckLowering.cpp +++ b/ets2panda/compiler/lowering/ets/enumPostCheckLowering.cpp @@ -400,11 +400,9 @@ bool EnumPostCheckLoweringPhase::PerformForModule(public_lib::Context *ctx, pars if (node->IsExpression()) { node->AsExpression()->SetTsType(nullptr); // force recheck } - if (checker_->Context().ContainingClass() == nullptr) { - auto *parentClass = util::Helpers::FindAncestorGivenByType(node, ir::AstNodeType::CLASS_DEFINITION); - checker_->Context().SetContainingClass( - parentClass->AsClassDefinition()->TsType()->AsETSObjectType()); - } + auto *parentClass = util::Helpers::FindAncestorGivenByType(node, ir::AstNodeType::CLASS_DEFINITION); + checker::SavedCheckerContext savedContext(checker_, checker_->Context().Status(), + parentClass->AsClassDefinition()->TsType()->AsETSObjectType()); node->RemoveAstNodeFlags(ir::AstNodeFlags::RECHECK); node->Check(checker_); if (node->IsExpression() && node->AsExpression()->TsType() != nullptr &&