Мне кажется, что надо менять споособ вычисления Location для квази-цитат в компиляторе.
Сейчас используется совершенно непотребный алгоритм со стеком Location-ов. В этот стек запихиваются Location-ы текущего обрабатываемого фрагмента кода (например, общий Location макроса). Далее любой сгенерированный квази-цитатой код получает этот Location. Конечно его можно поправить вручную, но на поверку получается, что в большинстве случаев в Location-ах сгенерированного кода содержится полная фигня.
Мне видится следующий способ решения проблемы. Можно вычислять Location квази-цитаты складывая (точнее объединяя, но это как раз и делает оператор сложения) Location-ы всех вложенных выражений. По идее это должно дать более точное вычисление Location-ов, а как следствие уменьшение глюков в Интеграции и упрощение написания макросов (ведь в большинстве случаев в них не прийдется следить за Location-ами).
Есть каки-либо мысли?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.