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

Ensure we don't leak wrapped symbols from public Workspace APIs #36099

Closed
jasonmalinowski opened this issue May 31, 2019 · 3 comments · Fixed by #40030
Closed

Ensure we don't leak wrapped symbols from public Workspace APIs #36099

jasonmalinowski opened this issue May 31, 2019 · 3 comments · Fixed by #40030

Comments

@jasonmalinowski
Copy link
Member

We have a few APIs on the Workspace level that return ISymbols; we should make sure we always return the unwrapped symbols otherwise we might break third parties.

@jasonmalinowski jasonmalinowski added this to the 16.2 milestone May 31, 2019
@gafter gafter added the Area-IDE label Jun 1, 2019
@CyrusNajmabadi
Copy link
Member

We have a few APIs on the Workspace level that return ISymbols; we should make sure we always return the unwrapped symbols otherwise we might break third parties.

But what if some other feature calls into that Workspace level API... how would that then work? Wouldn't they lose the nullability information? Will we need overloads for them to call? ick... :-/

@jasonmalinowski
Copy link
Member Author

A very quick glance looked like most of the APIs we do expose are things that are things like moving up/down inheritance hierarchies where I'm not sure if we even did things like preserve constructed generic types. I'm totally bucketing this is in a "I don't know, but we'll find out once we get there". I also expect that by that point we'll be in a much better place to know if we're just pushing this onto the compiler or what our pattern is going to be.

@jasonmalinowski
Copy link
Member Author

Need to keep this in 16.2 until we've evaluated the risk-- this would break extensions otherwise.

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

Successfully merging a pull request may close this issue.

6 participants