Fix infinite loop crash in variable type inference #25696
Merged
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.
PR Summary
Fixes a crash caused by an incorrect check with the
IsWithinextension method. As the name suggests, it's supposed to check if an extent is within another extent but the check did not work properly. For example, suppose you have a PipelineAst like this:$Var1 | where {$true}and you want to check if$Var1IsWithin that ast, the check would correctly return true. However, if you formatted it like this:it would incorrectly return false because the end column of the PipelineAst is lower than the end column of the variable
$Var1.I've simplified the check to just look at the start and end offsets and it's now working as expected.
I'm not sure if a test is really needed since this is just a fix for an internal method that was simply wrong. But if it needs to be added I suppose I can just add a test like "It should not crash"
PR Context
Fixes #25694
PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright header