keep in mind that you have to define everything you use, you don't get vec! from the standard library

thanks! i'll have a look now (instead of a lunch break :D)

Hm, accutaly, I think mine proposal is a better one :D

Internally, the diagnostics are expressed in terms of the macro file, and it looks like what breaks here is the transition from macro-file to the original file. Ie, we show, int he original file, ranges from macro pseudo file.

that was my first guess as well. not sure how to change that but i'll try to understand it at least :)

Yeah, unforutantely our internal APIs are not... polished.

But the core thing to understand is that we have real files (FileId) and pseudo files generated by macros HirFileId. InFile<T> is something withing a real or pseudo file. When you render something to the user, you need to make sure that you are talking in terms of ranges in the real file.

alright, how do i resolve an InFile<TextRange> to a TextRange in a given file_id? maybe i'm looking for the wrong thing, but i hoped there was a map somewhere to translate virtual file_id ranges to spans in real files (i ask because in ra_ide::Diagnostic i need to set a real TextRange)