Suppress "unused import" for abstract param/return types #1486
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When we generate a non-wrapped function or method binding that takes or returns an abstract (i.e. pure virtual) type not referenced elsewhere, we get an erroneous "unused import" warning for the user-visible re-export of that abstract type. This happens because the only use of the type is emitted by cxx and thus references the binding in
cxxbridge
instead of the re-export inoutput
. [See theunqualify_params_minisyn()
andunqualify_ret_type()
calls incodegen_rs::fun_codegen::gen_function()
.]The warning is erroneous because the re-export is the only way for users to name the type, and we don't want to generate an API that takes or returns types the user can't name. So let's just suppress it, like we did for non-abstract types in #1345.