s1024: don't suggest an invalid fix when Sub is not called on a time.Time - #1730
Open
Eljees wants to merge 1 commit into
Open
s1024: don't suggest an invalid fix when Sub is not called on a time.Time#1730Eljees wants to merge 1 commit into
Eljees wants to merge 1 commit into
Conversation
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.
Fixes #756.
S1024 rewrites
x.Sub(time.Now())intotime.Until(x), which only compiles whenxis itself atime.Time.Subis reachable in two other shapes, and the fix produces code that does not build in either:The pointer case is not in the issue, but it has the same cause.
Emitting
time.Until(t.Time)for the embedded case would be nicer than dropping the fix, but the embedded field is not always nameable at the use site — it can be unexported and declared in another package — so this keeps the diagnostic and reports it without a fix instead.The testdata gains both shapes. On the current tree the golden file fails with exactly the two invalid rewrites.