Address false positive cases for return value codefix#38410
Closed
Address false positive cases for return value codefix#38410
Conversation
0c78eff to
bd53776
Compare
sandersn
approved these changes
May 26, 2020
Member
|
@rbuckton you planning on merging this? 😄 |
Contributor
Author
|
It looks like this was updated and merged as part of #35282. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
In #26434 we added a code fix that can insert a
returnstatement in places where it is missing, however the code fix has a step that is intended to verify that the resulting return expression will be correctly assignable. Unfortunately, this code fix attempts to type check a purely synthetic AST with nooriginalpointer set, which results in the call tochecker.getTypeAtLocationessentially returningany. This results in false-positives for code fixes that should not be valid.This changes the code fix to instead leverage the
checker.createSignatureandchecker.createAnonymousTypefunctions to synthesize the expected type for comparison.