В свете недавнего обсуждения
механизмов работы линкаАвтор: xeno.by
Дата: 28.09.11
, пришла мысль обобщить
идею Скальского на тему декларативной активации макросов. Не пинайте, если сморожу глупость — я с макросами Немерле знаком совсем недолго.
Итак, к делу. Дополнительно к явному вызову макросов (функционально или атрибутами), возможно, имеет смысл реализовать автоматическую активацию макросов по шаблону. Скажем, встретился в коде вызов <[ $(foo: Foo).Bar(..$args) ]> — вызываем для него макрос, который, возможно, решит немножко подпилить или вообще заменить этот вызов. Некоторым образом, это напоминает лисповский defadvice, но мы не обязаны ограничиваться только подпиливанием определенных методов. С помощью этой фичи можно было бы реализовать "честную" поддержку LINQ — обращения к методам IQueryable автоматически бы вызывали преобразование выражений Немерле в выражения сишарпа.
Какие здесь могут быть проблемы? Будет ли это практично в реализации?