You can search for "no_zap" under the `denoland` org if you want to have a bit more context.
I believe it's a form of type checking where, simplifying, things like function bodies are removed and type checking is only done across top-level items.
People want something easy to use with good defaults. If that wasn't the case, shells wouldn't have a hundreds of plugins dedicated to customizing the prompt.
Many Linux distributions have debuginfod servers that supply split debugging symbols on demand. So one could argue that it's implemented by default on Linux too.
> The jsx stuff looks fancy, but it completely breaks Rust Analyzer
That's not inherent of macros, but how the parser of the macro body is written. Ideally, the jsx code would be transformed to correct Rust code even on broken input, then Rust Analyzer would map the tokens from the expansion to the tokens from the source code to have context for IDE features (rename, autocompletion, go to definition, etc).
I wrote some stuff [1]. It's a bit all over the place since I'm very bad at writing. Here's also a thread with Rust Analyzer's developers [2]
The problem is that you also sometimes need to inspect output tokens that occur between (or that don't logically map to tokens between) the input tokens. I ran into this with Leptos. It's just a bad idea. Floem shows that you can have something that looks awfully similar to HTML, without the unnecessary complexity (and compile times) of JSX macros.
Doesn't work on my Firefox either. Brought me to the real site. I do have all privacy options on, and ublock Origin. So maybe something just deleted the referrer. Or it got deleted because it points to google (I have google container on).
The `rel="noreferrer"` attribute on the link instructs the browser to omit the Referer header on the request. So any browser that respects that option shouldn't be impacted by that code.