Skip to content
This repository has been archived by the owner on Jun 8, 2021. It is now read-only.

Object Reform obscures documentation for wrapped types #49

Closed
jashephe opened this issue May 23, 2015 · 11 comments
Closed

Object Reform obscures documentation for wrapped types #49

jashephe opened this issue May 23, 2015 · 11 comments

Comments

@jashephe
Copy link
Contributor

Although @gkoz's object reform PR improved the handling of wrapped types, it resulted in the generated rustdoc pages not showing the documentation for associated methods (look at the documentation page for Pixbuf for an example). This is probably a rustdoc problem, but is there anything we can do to make the docs visible?

@gkoz
Copy link
Member

gkoz commented May 23, 2015

Bummer.
We'll probably have to resort to some code duplication, remove the generic Object<T> struct and make each type its own newtype. Possibly using a macro like rgtk did.
Another problem is that even with that out of the way rustdoc won't show that e.g. PixbufAnimation and PixbufSimpleAnim implement PixbufAnimationExt and I'm not sure how to fix this. Just reference the applicable traits in the doc comments?

This is not a big deal in gdk but will be a problem in gtk, so thanks for bringing this up before I made all of gtk like this :)

@gkoz
Copy link
Member

gkoz commented May 23, 2015

@jashephe
I see you've already identified one or more relevant open issues in the rust repo. Could you link them here?

@jashephe
Copy link
Contributor Author

@gkoz, I'm not sure what you mean. I haven't seen a relevant rustdoc issue, I just assumed that rustdoc was to blame.

@gkoz
Copy link
Member

gkoz commented May 23, 2015

I thought I saw your comment in one of rustdoc issues...

@jashephe
Copy link
Contributor Author

Ah, that was actually for a different, but perhaps related issue. The implementation of ContextExt for Context is not shown in the documentation for rust-gnome/gdk, because Context is not part of the gdk crate. I was able to get around it by documenting the ContextExt trait method definitions, rather than the implementing methods.

@jashephe
Copy link
Contributor Author

Here's that issue, but it's not quite the same as what's going on here.

@gkoz
Copy link
Member

gkoz commented May 23, 2015

The type aliases issue: rust-lang/rust#19381
The blanket impls issue: rust-lang/rust#25608

I'm hopeful this can be fixed in rustdoc rather than by hoop-jumping.

@jashephe
Copy link
Contributor Author

It doesn't look like either of those issues has received much attention, unfortunately.

@gsingh93
Copy link
Member

gsingh93 commented Jun 4, 2015

@gkoz, did your pull request (rust-lang/rust#25892) fix this issue? Why exactly was it closed?

@gkoz
Copy link
Member

gkoz commented Jun 4, 2015

That was a hack that didn't get much support because of the limitations of a 10-line patch.
It wouldn't buy us much anyway and could be worked around. The big stopper is rust-lang/rust#25608 (possibly with added transitivity requirement) because most of the invisible documentation would be of the impl <O: Upcast<Window>> WindowExt for O kind.

@gkoz gkoz mentioned this issue Jul 29, 2015
2 tasks
@gkoz
Copy link
Member

gkoz commented Mar 16, 2016

Inherent implementations should be visible now. The blanket implementations issue probably requires rewriting rustdoc.

@gkoz gkoz closed this as completed Mar 16, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants