Skip to content

Commit 0a928c6

Browse files
surfingoldelephantsdwheeler
authored andcommitted
Add [ref] special case for ConstrainedLanguage
[ref] is found in CoreTypes and is therefore permitted in ConstrainedLanguage mode. However, casting is not permitted and results in a statement-terminating error. Other uses (new() instantiation, in parameter binding, etc) are permitted.
1 parent 1db82fb commit 0a928c6

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

reference/5.1/Microsoft.PowerShell.Core/About/about_Language_Modes.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Explains language modes and their effect on PowerShell sessions.
33
Locale: en-US
4-
ms.date: 10/04/2023
4+
ms.date: 04/03/2025
55
no-loc: [FullLanguage, ConstrainedLanguage, RestrictedLanguage, NoLanguage]
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-5.1&WT.mc_id=ps-gethelp
77
schema: 2.0.0
@@ -273,7 +273,6 @@ Allowed Types:
273273
- `[psobject]`
274274
- `[psprimitivedictionary]`
275275
- `[PSTypeNameAttribute]`
276-
- `[ref]`
277276
- `[regex]`
278277
- `[sbyte]`
279278
- `[securestring]`
@@ -313,6 +312,12 @@ Only the following COM object types are permitted:
313312
- `Scripting.FileSystemObject`
314313
- `VBScript.RegExp`
315314

315+
Special cases:
316+
317+
- `[ref]` - Casting an object to type `[ref]` or
318+
`[Management.Automation.PSReference]` is not permitted. Other uses are
319+
permitted.
320+
316321
### NoLanguage mode
317322

318323
PowerShell `NoLanguage` mode disables PowerShell scripting language completely.

reference/7.4/Microsoft.PowerShell.Core/About/about_Language_Modes.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Explains language modes and their effect on PowerShell sessions.
33
Locale: en-US
4-
ms.date: 10/04/2023
4+
ms.date: 04/03/2025
55
no-loc: [FullLanguage, ConstrainedLanguage, RestrictedLanguage, NoLanguage]
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-7.4&WT.mc_id=ps-gethelp
77
schema: 2.0.0
@@ -277,7 +277,6 @@ Allowed Types:
277277
- `[psobject]`
278278
- `[psprimitivedictionary]`
279279
- `[PSTypeNameAttribute]`
280-
- `[ref]`
281280
- `[regex]`
282281
- `[sbyte]`
283282
- `[securestring]`
@@ -323,6 +322,12 @@ Only the following COM object types are permitted:
323322
- `Scripting.FileSystemObject`
324323
- `VBScript.RegExp`
325324

325+
Special cases:
326+
327+
- `[ref]` - Casting an object to type `[ref]` or
328+
`[Management.Automation.PSReference]` is not permitted. Other uses are
329+
permitted.
330+
326331
### NoLanguage mode
327332

328333
PowerShell `NoLanguage` mode disables PowerShell scripting language completely.

reference/7.5/Microsoft.PowerShell.Core/About/about_Language_Modes.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Explains language modes and their effect on PowerShell sessions.
33
Locale: en-US
4-
ms.date: 10/04/2023
4+
ms.date: 04/03/2025
55
no-loc: [FullLanguage, ConstrainedLanguage, RestrictedLanguage, NoLanguage]
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-7.5&WT.mc_id=ps-gethelp
77
schema: 2.0.0
@@ -277,7 +277,6 @@ Allowed Types:
277277
- `[psobject]`
278278
- `[psprimitivedictionary]`
279279
- `[PSTypeNameAttribute]`
280-
- `[ref]`
281280
- `[regex]`
282281
- `[sbyte]`
283282
- `[securestring]`
@@ -323,6 +322,12 @@ Only the following COM object types are permitted:
323322
- `Scripting.FileSystemObject`
324323
- `VBScript.RegExp`
325324

325+
Special cases:
326+
327+
- `[ref]` - Casting an object to type `[ref]` or
328+
`[Management.Automation.PSReference]` is not permitted. Other uses are
329+
permitted.
330+
326331
### NoLanguage mode
327332

328333
PowerShell `NoLanguage` mode disables PowerShell scripting language completely.

reference/7.6/Microsoft.PowerShell.Core/About/about_Language_Modes.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Explains language modes and their effect on PowerShell sessions.
33
Locale: en-US
4-
ms.date: 10/04/2023
4+
ms.date: 04/03/2025
55
no-loc: [FullLanguage, ConstrainedLanguage, RestrictedLanguage, NoLanguage]
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-7.6&WT.mc_id=ps-gethelp
77
schema: 2.0.0
@@ -277,7 +277,6 @@ Allowed Types:
277277
- `[psobject]`
278278
- `[psprimitivedictionary]`
279279
- `[PSTypeNameAttribute]`
280-
- `[ref]`
281280
- `[regex]`
282281
- `[sbyte]`
283282
- `[securestring]`
@@ -323,6 +322,12 @@ Only the following COM object types are permitted:
323322
- `Scripting.FileSystemObject`
324323
- `VBScript.RegExp`
325324

325+
Special cases:
326+
327+
- `[ref]` - Casting an object to type `[ref]` or
328+
`[Management.Automation.PSReference]` is not permitted. Other uses are
329+
permitted.
330+
326331
### NoLanguage mode
327332

328333
PowerShell `NoLanguage` mode disables PowerShell scripting language completely.

0 commit comments

Comments
 (0)