-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Closed
Labels
Issue-BugIssue has been identified as a bug in the productIssue has been identified as a bug in the productResolution-FixedThe issue is fixed.The issue is fixed.WG-Enginecore PowerShell engine, interpreter, and runtimecore PowerShell engine, interpreter, and runtime
Milestone
Description
Related: #5122
-
Write-Output -NoEnumerate, when given a collection, always returns aPSObject[]rather than a regularobject[]]array, which is unexpected. -
Additionally, this means that if a different collection type such as
[System.Collections.ArrayList]was passed, it is not preserved.Write-Output's documentation, which currently only states, "prevents Write-Output from enumerating output", which sounds like the input collection - whatever its type - is simply passed through - a sensible expectation that Windows PowerShell versions up to v5.1 indeed honor.
I suspect this regression is a consequence of the ill-fated #2038 PR that arose out of issue #2035.
Steps to reproduce
(Write-Output -NoEnumerate 1, 2).GetType().Name
(Write-Output -NoEnumerate ([System.Collections.ArrayList] (1, 2))).GetType().NameExpected behavior
Object[]
ArrayList
This is how it still works in Windows PowerShell v5.1
Actual behavior
PSObject[]
PSObject[]
As stated, this affects PS Core only.
Environment data
PowerShell Core v6.0.0 on macOS 10.13.2
PowerShell Core v6.0.0 on Ubuntu 16.04.3 LTS
PowerShell Core v6.0.0 on Microsoft Windows 10 Pro (64-bit; v10.0.15063)alx9r, TylerLeonhardt, Jaykul, vexx32, briantist and 1 more
Metadata
Metadata
Assignees
Labels
Issue-BugIssue has been identified as a bug in the productIssue has been identified as a bug in the productResolution-FixedThe issue is fixed.The issue is fixed.WG-Enginecore PowerShell engine, interpreter, and runtimecore PowerShell engine, interpreter, and runtime