Возникло желание сгенерировать тело метода по его типизированному представлению.
Проблема только в том, что типизированное представление появляется в процессе типизации же. Получается проблема курицы и яйца.
В недавнем прошлом ionoy придела в типизатор события позволяющие подключиться между стадиями и получить доступ к типизированному AST тела метода (TExpr) перед началом 2+ стадии компиляции. Проблема только в том, что из этого метода уже крайне трудно остановить типизацию и нельзя запустить ее вручную.
Я придумал простое решение этой задачи. Добавил исключение Nemerle.Compiler.RestartRunBodyTyperException. Если подключиться к событиям typeBuilder.MethodBeforeStageX, изменить в нем тело метода и сгенерировать это исключение, то типизация метода перезапустится и будет скомпилировано новое тело. При этом можно частично переиспользовать TExpr из старого тела.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.