Skip to content
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

Include template arguments in instantiations' names (support marking "nested" instantiations as opaque) #774

Open
fitzgen opened this issue Jun 22, 2017 · 0 comments

Comments

@fitzgen
Copy link
Member

fitzgen commented Jun 22, 2017

Follow up to #773

To fully support template instantiations, and particularly template instantiations where a template argument is another template instantiation, with our various flags that depend on names (eg marking things opaque) we need to stop making template instantiations just use their template definition's name and start appending their template arguments.

The catch is that there are a bunch of places that assume that the names we return are valid rust identifiers and don't have characters like < in them. I kind of feel like we want multiple name-getting traits and/or multiple different name-getting methods on the ItemCanonicalName trait. Or maybe even extending the ItemCanonicalPath to return a tree rather than a vec so we can properly represent paths with instantiations and have each instantiation argument also be a path...

Anyways, after #773, we can make certain instantiations opaque, like Rooted<SavedFrameCache>, but not any "nested" instantiations, like Rooted<Cache<SavedFrame>>. Supporting the latter requires figuring out this naming mess.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant