diff options
| author | bors <bors@rust-lang.org> | 2021-08-05 22:13:32 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-08-05 22:13:32 +0000 |
| commit | e2f79572fbcbe103346c950d95d7335f6c804d83 (patch) | |
| tree | ef82f17d038e8def55e8012ed214619cb686ccbd /compiler/rustc_codegen_gcc | |
| parent | 2f07ae408fce782bf1058e3de808f1b6f9ab60a4 (diff) | |
| parent | ba11dc7fddd58eb3559d0724e8ced0d2c2128f4a (diff) | |
| download | rust-e2f79572fbcbe103346c950d95d7335f6c804d83.tar.gz rust-e2f79572fbcbe103346c950d95d7335f6c804d83.zip | |
Auto merge of #84176 - GuillaumeGomez:src-to-definition, r=jyn514
Generate links to definition in rustdoc source code pages
## Description
This PR adds an option (disabled by default) to add links in the source code page on ident. So for for example:
```rust
mod other_module;
struct Foo;
fn bar() {}
fn x<T: other_module::Trait>(f: Foo, g: other_module::Whatever, t: &T) {
let f: Foo = Foo;
bar();
f.some_method();
}
```
In the example (mostly in the `x` function), `other_module::Trait`, `Foo`, `other_module::Whatever`, `bar` and `some_method` are now links (and `other_module` at the top too).
In case there is a type coming from another crate, it'll link to its documentation page and not its definition (but you can then click on `[src]` so I guess it's fine).
Another important detail: I voluntarily didn't add links for primitive types. I think we can discuss about adding links on them or not in a later PR (adding the support for them would require only a few lines).
Here is a video summing up everything I wrote above:
https://user-images.githubusercontent.com/3050060/114622354-21307b00-9cae-11eb-834d-f6d8178a37bd.mp4
## Performance impact
So, on my computer, the performance remains more or less the same (which is quite surprising but that's a nice surprise). Here are the numbers:
Without the option:
* core: 1m 21s
* alloc: 26.78s
* std: 27.30s
* proc_macro: 4.50s
With source to definition links generation (I enabled by default the option):
* core: 1m 25s
* alloc: 25.76s
* std: 27.07s
* proc_macro: 4.66s
So no real change here (again, I'm very surprised by this fact).
For the size of the generated source files (only taking into account the `src` folder here since it's the only one impacted) by running `du -shc .` (when I am in the source folder).
Without the option: 11.939 MB
With the option: 12.611 MB
So not a big change here either. In all those docs, I ran `grep -nR '<a class=' . | wc -l` and got 43917. So there are quite a lot of links added. :)
cc `@rust-lang/rustdoc`
r? `@jyn514`
Diffstat (limited to 'compiler/rustc_codegen_gcc')
0 files changed, 0 insertions, 0 deletions
