From 41dcb83be07d59e0b2598d420c57a6c5d9545862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ibrahim=20Numanagic=CC=81?= Date: Tue, 16 Jan 2024 09:14:37 -0800 Subject: [PATCH] Fix lambdas [wip] --- codon/parser/visitors/translate/translate.cpp | 5 ++++- codon/parser/visitors/typecheck/names.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/codon/parser/visitors/translate/translate.cpp b/codon/parser/visitors/translate/translate.cpp index 15f6266b..5cc09a87 100644 --- a/codon/parser/visitors/translate/translate.cpp +++ b/codon/parser/visitors/translate/translate.cpp @@ -434,11 +434,14 @@ void TranslateVisitor::visit(AssignStmt *stmt) { seqassert(stmt->lhs->getId(), "expected IdExpr, got {}", stmt->lhs); auto var = stmt->lhs->getId()->value; if (!stmt->rhs || (!stmt->rhs->isType() && stmt->rhs->type)) { - if (stmt->rhs && stmt->rhs->type->getFunc()) + if (stmt->rhs && stmt->rhs->type->getFunc()) { + result = transform(stmt->rhs); return; + } if (stmt->rhs && stmt->rhs->type->getPartial() && !ctx->find(stmt->rhs->type->getClass()->realizedTypeName())) { // Partial generic; ignore [TODO] + result = transform(stmt->rhs); return; } diff --git a/codon/parser/visitors/typecheck/names.cpp b/codon/parser/visitors/typecheck/names.cpp index a5011529..7e942512 100644 --- a/codon/parser/visitors/typecheck/names.cpp +++ b/codon/parser/visitors/typecheck/names.cpp @@ -24,7 +24,7 @@ void ScopingVisitor::apply(Cache *cache, StmtPtr &s) { ScopingVisitor v; v.ctx = c; v.transformBlock(s); - // LOG("-> {}", s->toString(2)); + LOG("-> {}", s->toString(2)); } ExprPtr ScopingVisitor::transform(const std::shared_ptr &expr) {