mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Fix a regression in the API CompletionCompleters.CompleteFilename() that causes null reference exception (#26291)
This commit is contained in:
@@ -4580,8 +4580,8 @@ namespace System.Management.Automation
|
||||
return CommandCompletion.EmptyCompletionResult;
|
||||
}
|
||||
|
||||
var lastAst = context.RelatedAsts[^1];
|
||||
if (lastAst.Parent is UsingStatementAst usingStatement
|
||||
var lastAst = context.RelatedAsts?[^1];
|
||||
if (lastAst?.Parent is UsingStatementAst usingStatement
|
||||
&& usingStatement.UsingStatementKind is UsingStatementKind.Module or UsingStatementKind.Assembly
|
||||
&& lastAst.Extent.File is not null)
|
||||
{
|
||||
|
||||
@@ -126,4 +126,27 @@ Describe "Tab completion bug fix" -Tags "CI" {
|
||||
$Runspace.Dispose()
|
||||
}
|
||||
}
|
||||
|
||||
It "Issue#26277 - [CompletionCompleters]::CompleteFilename('') should work" {
|
||||
$testDir = Join-Path $TestDrive "TempTestDir"
|
||||
$file1 = Join-Path $testDir "abc.ps1"
|
||||
$file2 = Join-Path $testDir "def.py"
|
||||
|
||||
New-Item -ItemType Directory -Path $testDir > $null
|
||||
New-Item -ItemType File -Path $file1 > $null
|
||||
New-Item -ItemType File -Path $file2 > $null
|
||||
|
||||
try {
|
||||
Push-Location -Path $testDir
|
||||
$result = [System.Management.Automation.CompletionCompleters]::CompleteFilename("")
|
||||
$result | Should -Not -Be $null
|
||||
$result | Measure-Object | ForEach-Object -MemberName Count | Should -Be 2
|
||||
|
||||
$item1, $item2 = @($result)
|
||||
$item1.ListItemText | Should -BeExactly 'abc.ps1'
|
||||
$item2.ListItemText | Should -BeExactly 'def.py'
|
||||
} finally {
|
||||
Pop-Location
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user