-
-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generic type information missing for items in paths #429
Comments
Thank you very much for taking the time to report this issue, and especially for your minimal reproducer. I have done some debugging, and the problem seems to be that for items in paths, generic parameters are ignored. Only the name of the item name is used if it is part of a path: Clearly a somewhat big bug. I'm surprised it has not been noticed before. Instead of |
Oops, GitHub thought #430 was a fix. It wasn't... |
PR with fix: #431 @pragmatrix If you want to test the fix already now on your real code you can do like this:
$ cargo run -- --manifest-path ~/src/lib/Cargo.toml --omit blanket-impls,auto-trait-impls,auto-derived-impls
pub mod lib
pub struct lib::Handle<T>(_)
impl lib::Handle<u32>
pub fn lib::Handle<u32>::get_u32() -> u32
pub type lib::HU32 = lib::Handle<u32> |
Thank you a lot! I have tried version 0.31.0 and the results were great. I am now able to diff the API surface of skia-safe as a pre-release check and immediately found some inconsistencies in the current master. |
Hi, I was trying to use cargo public-api diffs on skia-safe, which uses generic handle types for a lot of the exported types. Here is an minimum working example that explains the problem:
lib.rs:
results in
but I I think it the functions should be represented with their complete type signature:
Without that, a diff compares all functions of the generic type instead of only the concrete type.
The text was updated successfully, but these errors were encountered: