Open
Conversation
* do not name trait_lts in for<> expression in the vtable, because they are already parameters of the vtable-containing type * add an appropriate lifetime bound for trait lifetimes to IConstConstructor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
i am honestly unsure about both changes here, but they look correct and allow the code to build.
do not name
trait_ltsin thefor<>construct in the vtable entry -- because they are already named in the outer scope, in the impl ofStabbyVtable[TraitName].Looks conceptually correct, but then, the definition of the extern fn is apparently fine with shadowing the same lifetime name, but the cast below it is not?? Like, should we be taking the lifetime from outer scope, or should we instead rename all the trait lifetimes to avoid the name collision?
bound all
trait_ltswith'stabby_vt_ltinIConstConstructor.I failed to understand why
IConstConstructor<'a>needs to be bounded by'a(or'stabby_vt_ltin the generated impl), but given that it is, all ofStabbyVtable...lifetimes must also be bounded by'stabby_vt_lt. Plus, all of its generic type parameters are already bounded by that, so it kinda comes to reason that the lifetimes would be too?