Uh oh!
There was an error while loading. Please reload this page.
Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler - #80845
Conversation
bors
commented
Jan 14, 2021
☔ The latest upstream changes (presumably #80802) made this pull request unmergeable. Please resolve the merge conflicts. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…ields, r=ollie27 Remove some function fields Same kind as rust-lang#80845. This PR removes the `all_types` and `ret_types` from the `clean::Function` type. Another change that I had to do was implementing the `From` trait to be able to convert `hir::def::DefKind` into `clean::TypeKind` without requiring `DocContext` (and so I updated the `clean` method so that it's taken into account). The last two commits improve a bit the `get_real_types` function and the `Type::generics` method. r? `@jyn514`
jyn514
left a comment
There was a problem hiding this comment.
I like the idea but the implementation needs some work.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
0164171 to
d5515adCompareGuillaumeGomez
commented
Feb 15, 2021
Updated. |
GuillaumeGomez
commented
Feb 18, 2021
Ping @jyn514 |
Uh oh!
There was an error while loading. Please reload this page.
c547676 to
4c70372CompareGuillaumeGomez
commented
Feb 26, 2021
I'll go forward with this then! If you want the test back, don't hesitate to ask (either before after it's merged). @bors: r=jyn514 |
bors
commented
Feb 26, 2021
📌 Commit 4c70372 has been approved by |
…, r=jyn514 Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler It was surprisingly difficult to make this change, mostly because of two issues: * We now store the `ExternCrate` name in the parent struct (`clean::Item`), which forced me to modify the json conversion code a bit more than expected. * The second problem was that, since we now have a `Some(name)`, it was trying to render it, ending up in a panic because we ended up in a `unreachable` statement. The solution was simply to add `!item.is_extern_crate()` in `formats::renderer` before calling `cx.item(item, &cache)?;`. I'll continue to replace all the `clean::ItemKind` variants one by one until it looks exactly like `hir::ItemKind`. Then we'll simply discard the rustdoc type. Once this done, we'll be able to discard `clean::Item` too to use `hir::Item`. r? `@jyn514`
…, r=jyn514 Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler It was surprisingly difficult to make this change, mostly because of two issues: * We now store the `ExternCrate` name in the parent struct (`clean::Item`), which forced me to modify the json conversion code a bit more than expected. * The second problem was that, since we now have a `Some(name)`, it was trying to render it, ending up in a panic because we ended up in a `unreachable` statement. The solution was simply to add `!item.is_extern_crate()` in `formats::renderer` before calling `cx.item(item, &cache)?;`. I'll continue to replace all the `clean::ItemKind` variants one by one until it looks exactly like `hir::ItemKind`. Then we'll simply discard the rustdoc type. Once this done, we'll be able to discard `clean::Item` too to use `hir::Item`. r? ``@jyn514``
jyn514
commented
Feb 26, 2021
@bors r- You didn't fix the panic:
|
GuillaumeGomez
commented
Feb 26, 2021
Good catch, thanks! |
4c70372 to
ed50563CompareGuillaumeGomez
commented
Feb 26, 2021
@jyn514: I went for what you suggested: I now pass the |
bors
commented
Mar 5, 2021
☔ The latest upstream changes (presumably #82777) made this pull request unmergeable. Please resolve the merge conflicts. |
…ake transition over hir::ItemKind simpler
ed50563 to
286a357CompareGuillaumeGomez
commented
Mar 5, 2021
Fixed the issue, so let's go! @bors: r=jyn514 |
bors
commented
Mar 5, 2021
📌 Commit 286a357 has been approved by |
…, r=jyn514 Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler It was surprisingly difficult to make this change, mostly because of two issues: * We now store the `ExternCrate` name in the parent struct (`clean::Item`), which forced me to modify the json conversion code a bit more than expected. * The second problem was that, since we now have a `Some(name)`, it was trying to render it, ending up in a panic because we ended up in a `unreachable` statement. The solution was simply to add `!item.is_extern_crate()` in `formats::renderer` before calling `cx.item(item, &cache)?;`. I'll continue to replace all the `clean::ItemKind` variants one by one until it looks exactly like `hir::ItemKind`. Then we'll simply discard the rustdoc type. Once this done, we'll be able to discard `clean::Item` too to use `hir::Item`. r? `@jyn514`
| ExternCrateItem { ref src } => ItemEnum::ExternCrateItem { | ||
| name: name.as_ref().unwrap().to_string(), | ||
| rename: src.map(|x| x.to_string()), | ||
| }, |
There was a problem hiding this comment.
Yup, this is what I was expecting, thanks :)
…laumeGomez Rollup of 7 pull requests Successful merges: - rust-lang#80845 (Make ItemKind::ExternCrate looks like hir::ItemKind::ExternCrate to make transition over hir::ItemKind simpler) - rust-lang#82708 (Warn on `#![doc(test(...))]` on items other than the crate root and use future incompatible lint) - rust-lang#82714 (Detect match arm body without braces) - rust-lang#82736 (Bump optimization from mir_opt_level 2 to 3 and 3 to 4 and make "release" be level 2 by default) - rust-lang#82782 (Make rustc shim's verbose output include crate_name being compiled.) - rust-lang#82797 (Update tests names to start with `issue-`) - rust-lang#82809 (rustdoc: Use substrings instead of split to grab enum variant paths) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
It was surprisingly difficult to make this change, mostly because of two issues:
ExternCratename in the parent struct (clean::Item), which forced me to modify the json conversion code a bit more than expected.Some(name), it was trying to render it, ending up in a panic because we ended up in aunreachablestatement. The solution was simply to add!item.is_extern_crate()informats::rendererbefore callingcx.item(item, &cache)?;.I'll continue to replace all the
clean::ItemKindvariants one by one until it looks exactly likehir::ItemKind. Then we'll simply discard the rustdoc type. Once this done, we'll be able to discardclean::Itemtoo to usehir::Item.r? @jyn514