Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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

Copy link
Copy link
@alx9r

Description

@alx9r
Issue body actions

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                                                                                        
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.