Skip to content

Write-Output $null -NoEnumerate produces different Collection<PSObject> in 5.1 vs 6.0 #6451

@alx9r

Description

@alx9r

I'm not sure which behavior is better, but I expected 5.1 and 6.0 to behave the same in this respect. If this change is deliberate I would like to understand why.

Steps to reproduce

$r = [System.Collections.ObjectModel.Collection[psobject]]{Write-Output $null -NoEnumerate}.Invoke()
$r.item(0).GetType()

Behavior in PowerShell 5.1

You cannot call a method on a null-valued expression.
At C:\Users\un1\Desktop\test.ps1:2 char:1
+ $r[0].GetType()
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
>$PSVersionTable

Name                           Value                                                                    
----                           -----                                                                    
PSVersion                      5.1.14409.1012                                                           
PSEdition                      Desktop                                                                  
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                  
BuildVersion                   10.0.14409.1012                                                          
CLRVersion                     4.0.30319.42000                                                          
WSManStackVersion              3.0                                                                      
PSRemotingProtocolVersion      2.3                                                                      
SerializationVersion           1.1.0.1                                                                  

Behavior in PowerShell 6.0

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     PSObject[]                               System.Array
> $PSVersionTable

Name                           Value                                            
----                           -----                                            
PSVersion                      6.0.2                                            
PSEdition                      Core                                             
GitCommitId                    v6.0.2                                           
OS                             Microsoft Windows 6.3.9600                       
Platform                       Win32NT                                          
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                          
PSRemotingProtocolVersion      2.3                                              
SerializationVersion           1.1.0.1                                          
WSManStackVersion              3.0                                                                                        

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-BugIssue has been identified as a bug in the productResolution-No ActivityIssue has had no activity for 6 months or moreWG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions