Skip to content

Get-TypeData with a non-wildcard type name that matches no loaded type data quietly returns nothing #7521

@mklement0

Description

@mklement0

Follow-up from #7434 and related to #7498.

Note that this is a longstanding, albeit undocumented, behavior, and changing it now may break existing scripts, so there are two possible resolutions:

  • Conclude that changing this would break too many scripts and therefore make do with documenting the surprising / inconsistent behavior.

  • Conclude that this is a Bucket 3 change and make the change nonetheless.

The current behavior - quietly returning nothing and signaling success in $? - deviates from the typical behavior of asking for specific entities with literal names, e.g., Get-Item NoSuch.

Steps to reproduce

Ask for nonexistent type data with a type name that doesn't include wildcard characters:

Get-TypeData NoSuchType

Expected behavior

A non-terminating error indicating that no such type data is loaded into the current session.
$? should indicate $False

The error message should be similar to the one for Get-FormatData (which is suboptimal as of this writing), which, modeled on my suggestion here, could be something like:

No extended type data for type name '{0}' has been loaded into the current session.
Note that type names must be specified exactly as defined and are typically full .NET type names.

Actual behavior

Nothing ([System.Management.Automation.Internal.AutomationNull]::Value) is output, and $? reflects $True.

While this behavior may make sense for wildcard-based arguments, it doesn't for literal ones.

Compare this to the behavior of cmdlets such as Get-Item, Get-ChildItem, Get-Content, ..., which all fail if a given non-wildcard path doesn't identify an existing file.

Environment data

PowerShell Core v6.1.0-preview.4 on macOS 10.13.6
PowerShell Core v6.1.0-preview.4 on Ubuntu 16.04.4 LTS
PowerShell Core v6.1.0-preview.4 on Microsoft Windows 10 Pro (64-bit; Version 1803, OS Build: 17134.165)
Windows PowerShell v5.1.17134.165 on Microsoft Windows 10 Pro (64-bit; Version 1803, OS Build: 17134.165)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Breaking-Changebreaking change that may affect usersCommittee-ReviewedPS-Committee has reviewed this and made a decisionIssue-Discussionthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifResolution-No ActivityIssue has had no activity for 6 months or moreUp-for-GrabsUp-for-grabs issues are not high priorities, and may be opportunities for external contributorsWG-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